Skip to content

文法リファレンス

Wireweave DSLの完全な文法リファレンスです。

基本構文

コメント

wireframe
// 単一行コメント

/* 複数行
   コメント */

文字列

wireframe
"ダブルクォート文字列"
'シングルクォート文字列'

数値

wireframe
100        // 整数
3.14       // 浮動小数点

ブーリアン

wireframe
true
false

構造

Page

wireframe
page [title] [modifiers] {
  [children]
}

例:

wireframe
page { }
page "Title" { }
page "Title" centered { }

コンポーネント

wireframe
component_name [label] [modifiers] {
  [children]
}

例:

wireframe
card { }
card "Title" { }
card shadow=md border { }
button "Click" primary

コンポーネントリファレンス

Layout

ページ構造を定義するコンポーネントです。

コンポーネント説明属性
pageページルートコンテナtitle, viewport, device, centered, p, gap
headerページヘッダー領域p, border, gap, justify, align
mainメインコンテンツ領域p, gap
footerページフッター領域p, border, gap
sidebarサイドバー領域position, w, p, gap
sectionセクション領域title, expanded, p, gap
wireframe
page "Dashboard" {
  header { }
  main { }
  footer { }
}

Grid

フレックスレイアウト用のコンポーネントです。

コンポーネント説明属性
row水平フレックスコンテナgap, justify, align, wrap, p, m
col垂直コンテナ/グリッドカラムspan, sm, md, lg, xl, order, gap, p, w
wireframe
row gap=4 justify=between {
  col span=6 { }
  col span=6 { }
}

Container

コンテンツをグループ化するコンポーネントです。

コンポーネント説明属性
cardカードコンポーネントtitle, p, shadow, border, gap
modalモーダルダイアログtitle, w, h, p
drawerドロワーパネルtitle, position, p
accordionアコーディオンパネルtitle, p
wireframe
card title="Settings" shadow=md {
  // コンテンツ
}

modal "Confirm" {
  text "Are you sure?"
  button "OK" primary
}

Text

テキストを表示するコンポーネントです。

コンポーネント説明属性
text通常テキストsize, weight, align, muted, m
title見出し(h1〜h6)level, size, align, m
linkハイパーリンクhref, external
wireframe
title "Welcome" level=1
text "Description" muted
link "Learn more" href="/docs"

Input

ユーザー入力を受け取るコンポーネントです。

コンポーネント説明属性
input入力フィールドlabel, type, placeholder, value, disabled, required, icon
textarea複数行入力label, placeholder, value, rows, disabled
selectドロップダウン選択label, placeholder, value, disabled
checkboxチェックボックスlabel, checked, disabled
radioラジオボタンlabel, name, checked, disabled
switchトグルスイッチlabel, checked, disabled
sliderスライダーlabel, min, max, value, step, disabled
buttonボタンprimary, secondary, outline, ghost, danger, size, icon, disabled, loading

入力タイプ:text, email, password, number, tel, url, search, date

wireframe
input "Email" type=email placeholder="Enter email"
textarea "Message" rows=4
select "Country" { }
checkbox "Agree" checked
button "Submit" primary
button "Cancel" outline

Display

ビジュアル要素を表示するコンポーネントです。

コンポーネント説明属性
image画像src, alt, w, h
placeholderプレースホルダーlabel, w, h
avatarアバターname, src, size
badgeバッジvariant, pill, icon, size
iconアイコンname, size, muted
divider区切り線m, my, mx
wireframe
image src="/photo.jpg" w=200
avatar "John" size=lg
badge "New" variant=success pill
icon "home" size=md
divider my=4

Data

データを表示するコンポーネントです。

コンポーネント説明属性
tableテーブルstriped, bordered, hover
listリストordered, none, gap
wireframe
table striped hover {
  // カラムと行の定義
}

list ordered {
  // 項目
}

Feedback

ユーザーにフィードバックを提供するコンポーネントです。

コンポーネント説明属性
alertアラートメッセージvariant, dismissible, icon
toastトースト通知position, variant
progressプログレスバーvalue, max, label, indeterminate
spinnerローディングスピナーlabel, size

Variant: success, warning, danger, info

wireframe
alert "Success!" variant=success
progress value=75 label="Loading..."
spinner size=lg

Overlay

オーバーレイUIコンポーネントです。

コンポーネント説明属性
tooltipツールチップposition
popoverポップオーバーtitle
dropdownドロップダウンメニュー-
wireframe
tooltip "Help text" position=top {
  button "?" outline
}

dropdown {
  // 項目
}

ナビゲーションコンポーネントです。

コンポーネント説明属性
navナビゲーションメニューvertical, gap
tabsタブコンポーネントactive
breadcrumbパンくずリスト-
wireframe
nav vertical {
  // ナビゲーション項目
}

tabs active=0 {
  // タブパネル
}

breadcrumb {
  // パンくず項目
}

属性構文

キー値属性

wireframe
component attribute=value
component attribute="string value"

例:

wireframe
col span=6
input placeholder="Enter email"
progress value=75

ブーリアン属性

wireframe
component attribute   // trueに設定

例:

wireframe
button primary        // primary=true
input disabled        // disabled=true
checkbox checked      // checked=true

間隔システム

Wireweaveは間隔トークンシステムを使用します:

トークン
00px
14px
28px
312px
416px
520px
624px
832px
1040px
1248px
wireframe
card p=4          // padding: 16px
row gap=2         // gap: 8px
text mt=6         // margin-top: 24px

完全な例

wireframe
page "User Management" centered {
  header border {
    row justify=between align=center {
      title "Admin" level=3
      nav {
        // ナビゲーション項目
      }
      avatar "Admin"
    }
  }

  row {
    sidebar w=200 {
      nav vertical {
        // メニュー項目
      }
    }

    main {
      row justify=between {
        title "Users" level=2
        button "Add User" primary
      }

      card {
        table striped hover {
          // テーブルコンテンツ
        }
      }

      row justify=center gap=2 {
        button "Previous" secondary
        text "Page 1 of 10"
        button "Next" secondary
      }
    }
  }
}

Released under the MIT License.