sparkle-design-cli 2.5.0-beta.5 → 2.5.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sparkle-design-cli",
3
- "version": "2.5.0-beta.5",
3
+ "version": "2.5.0-beta.6",
4
4
  "description": "Sparkle Design CLI — プロジェクトセットアップ、CSS・フォント生成、アンチパターン検査、AI エージェント(Claude Code / Cursor / Codex)向けのガードと hook 設定まで一括で行う sparkle-design 公式 CLI。",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org",
@@ -153,3 +153,32 @@ node scripts/validate-tokens.mjs
153
153
  **検査できないこと。** これは構造の検査であって、値の妥当性は見ていません。たとえば `--color-text-high` の参照先を別のグレーに書き換えてもコントラストが壊れるだけで検査は通ります。色の値そのものの正解は Figma です。
154
154
 
155
155
  `fontdata.csv` についても同じで、見ているのは形だけです。`variable` の値が消費側のプラグインに実在するクラスかどうかは、そのクラスが別リポジトリ(`sparkle-design-theme-settings` の `src/ui/styles/main.css`)にあるため、このリポジトリの CI では確かめられません。
156
+
157
+ ## 2026-10-02 のアイコン段階更新(internal issue #247)
158
+
159
+ Figma の `Typography` の「スタイル更新」注釈(19113:6808)に従い、
160
+ 20px と 24px の間に 22px を追加しました。fill=0/1 共通です。
161
+
162
+ | 段階 | px | 更新前の段階 |
163
+ |---|---|---|
164
+ | 1 | 12 | 1 |
165
+ | 2 | 14 | 2 |
166
+ | 3 | 16 | 3 |
167
+ | 4 | 18 | 4 |
168
+ | 5 | 20 | 5 |
169
+ | 6 | 22 | 新設 |
170
+ | 7 | 24 | 6 |
171
+ | 8 | 28 | 7 |
172
+ | 9 | 32 | 8 |
173
+ | 10 | 36 | 9 |
174
+ | 11 | 42 | 10 |
175
+ | 12 | 48 | 11 |
176
+ | 13 | 54 | 12 |
177
+
178
+ 既存表示を保つ場合は `Icon` / `Spinner` の旧 size=6〜12 と
179
+ `icon-6`〜`icon-12` の参照を 1 段上げます。ピクセル指定の他のコンポーネントには
180
+ この変更を適用しません。character の 12 段は据え置きです。
181
+ 既に新しい段階を使うコードとの区別が必要なため、一律の自動置換はできません。
182
+
183
+ Figma の gray/50・gray/500 は Variables / 実体の色と色票の HEX ラベルに
184
+ 不一致が残っています。gray.json は今回変更せず、採用値の確認待ちとします。
@@ -877,6 +877,27 @@ check('fontdata.csv が消費側の期待する形をしていること', () =>
877
877
  return problems.length ? problems.join(' / ') : null;
878
878
  });
879
879
 
880
+ // アイコンの番号追加・変更は fill 両軸と CSS utility を同時に更新する。
881
+ // en: Icon renumbering must update both fill axes and their CSS utilities.
882
+ check('icon 1–13 が Figma の 13 段に一致すること', () => {
883
+ const sizes = [12, 14, 16, 18, 20, 22, 24, 28, 32, 36, 42, 48, 54];
884
+ const problems = [];
885
+ for (const [index, px] of sizes.entries()) {
886
+ for (const fill of [0, 1]) {
887
+ const name = `icon-${index + 1}-fill-${fill}`;
888
+ if (!templateNoComments.includes(`--${name}-font-size: var(--font-size-${px});`)) {
889
+ problems.push(`${name} の font-size が ${px}px ではありません`);
890
+ }
891
+ if (!templateNoComments.includes(`.${name} {`)) {
892
+ problems.push(`${name} の utility がありません`);
893
+ }
894
+ }
895
+ }
896
+ const steps = [...templateNoComments.matchAll(/--icon-(\d+)-fill-0-font-size:/g)];
897
+ if (steps.length !== 13) problems.push(`段階数が ${steps.length}(期待 13)`);
898
+ return problems.length ? problems.join(' / ') : null;
899
+ });
900
+
880
901
  // ---------------------------------------------------------------------------
881
902
  // 結果
882
903
  // ---------------------------------------------------------------------------
@@ -29,6 +29,7 @@
29
29
  --font-size-16: 1rem; /* 16px */
30
30
  --font-size-18: 1.125rem; /* 18px */
31
31
  --font-size-20: 1.25rem; /* 20px */
32
+ --font-size-22: 1.375rem; /* 22px */
32
33
  --font-size-24: 1.5rem; /* 24px */
33
34
  --font-size-28: 1.75rem; /* 28px */
34
35
  --font-size-32: 2rem; /* 32px */
@@ -677,75 +678,85 @@
677
678
  --icon-5-fill-1-letter-spacing: var(--letter-spacing-normal);
678
679
  --icon-5-fill-1-line-height: var(--line-height-leading-none);
679
680
  --icon-6-fill-0-font-family: var(--font-family-icon);
680
- --icon-6-fill-0-font-size: var(--font-size-24);
681
+ --icon-6-fill-0-font-size: var(--font-size-22);
681
682
  --icon-6-fill-0-font-weight: var(--font-weight-icon);
682
683
  --icon-6-fill-0-letter-spacing: var(--letter-spacing-normal);
683
684
  --icon-6-fill-0-line-height: var(--line-height-leading-none);
684
685
  --icon-6-fill-1-font-family: var(--font-family-icon);
685
- --icon-6-fill-1-font-size: var(--font-size-24);
686
+ --icon-6-fill-1-font-size: var(--font-size-22);
686
687
  --icon-6-fill-1-font-weight: var(--font-weight-icon);
687
688
  --icon-6-fill-1-letter-spacing: var(--letter-spacing-normal);
688
689
  --icon-6-fill-1-line-height: var(--line-height-leading-none);
689
690
  --icon-7-fill-0-font-family: var(--font-family-icon);
690
- --icon-7-fill-0-font-size: var(--font-size-28);
691
+ --icon-7-fill-0-font-size: var(--font-size-24);
691
692
  --icon-7-fill-0-font-weight: var(--font-weight-icon);
692
693
  --icon-7-fill-0-letter-spacing: var(--letter-spacing-normal);
693
694
  --icon-7-fill-0-line-height: var(--line-height-leading-none);
694
695
  --icon-7-fill-1-font-family: var(--font-family-icon);
695
- --icon-7-fill-1-font-size: var(--font-size-28);
696
+ --icon-7-fill-1-font-size: var(--font-size-24);
696
697
  --icon-7-fill-1-font-weight: var(--font-weight-icon);
697
698
  --icon-7-fill-1-letter-spacing: var(--letter-spacing-normal);
698
699
  --icon-7-fill-1-line-height: var(--line-height-leading-none);
699
700
  --icon-8-fill-0-font-family: var(--font-family-icon);
700
- --icon-8-fill-0-font-size: var(--font-size-32);
701
+ --icon-8-fill-0-font-size: var(--font-size-28);
701
702
  --icon-8-fill-0-font-weight: var(--font-weight-icon);
702
703
  --icon-8-fill-0-letter-spacing: var(--letter-spacing-normal);
703
704
  --icon-8-fill-0-line-height: var(--line-height-leading-none);
704
705
  --icon-8-fill-1-font-family: var(--font-family-icon);
705
- --icon-8-fill-1-font-size: var(--font-size-32);
706
+ --icon-8-fill-1-font-size: var(--font-size-28);
706
707
  --icon-8-fill-1-font-weight: var(--font-weight-icon);
707
708
  --icon-8-fill-1-letter-spacing: var(--letter-spacing-normal);
708
709
  --icon-8-fill-1-line-height: var(--line-height-leading-none);
709
710
  --icon-9-fill-0-font-family: var(--font-family-icon);
710
- --icon-9-fill-0-font-size: var(--font-size-36);
711
+ --icon-9-fill-0-font-size: var(--font-size-32);
711
712
  --icon-9-fill-0-font-weight: var(--font-weight-icon);
712
713
  --icon-9-fill-0-letter-spacing: var(--letter-spacing-normal);
713
714
  --icon-9-fill-0-line-height: var(--line-height-leading-none);
714
715
  --icon-9-fill-1-font-family: var(--font-family-icon);
715
- --icon-9-fill-1-font-size: var(--font-size-36);
716
+ --icon-9-fill-1-font-size: var(--font-size-32);
716
717
  --icon-9-fill-1-font-weight: var(--font-weight-icon);
717
718
  --icon-9-fill-1-letter-spacing: var(--letter-spacing-normal);
718
719
  --icon-9-fill-1-line-height: var(--line-height-leading-none);
719
720
  --icon-10-fill-0-font-family: var(--font-family-icon);
720
- --icon-10-fill-0-font-size: var(--font-size-42);
721
+ --icon-10-fill-0-font-size: var(--font-size-36);
721
722
  --icon-10-fill-0-font-weight: var(--font-weight-icon);
722
723
  --icon-10-fill-0-letter-spacing: var(--letter-spacing-normal);
723
724
  --icon-10-fill-0-line-height: var(--line-height-leading-none);
724
725
  --icon-10-fill-1-font-family: var(--font-family-icon);
725
- --icon-10-fill-1-font-size: var(--font-size-42);
726
+ --icon-10-fill-1-font-size: var(--font-size-36);
726
727
  --icon-10-fill-1-font-weight: var(--font-weight-icon);
727
728
  --icon-10-fill-1-letter-spacing: var(--letter-spacing-normal);
728
729
  --icon-10-fill-1-line-height: var(--line-height-leading-none);
729
730
  --icon-11-fill-0-font-family: var(--font-family-icon);
730
- --icon-11-fill-0-font-size: var(--font-size-48);
731
+ --icon-11-fill-0-font-size: var(--font-size-42);
731
732
  --icon-11-fill-0-font-weight: var(--font-weight-icon);
732
733
  --icon-11-fill-0-letter-spacing: var(--letter-spacing-normal);
733
734
  --icon-11-fill-0-line-height: var(--line-height-leading-none);
734
735
  --icon-11-fill-1-font-family: var(--font-family-icon);
735
- --icon-11-fill-1-font-size: var(--font-size-48);
736
+ --icon-11-fill-1-font-size: var(--font-size-42);
736
737
  --icon-11-fill-1-font-weight: var(--font-weight-icon);
737
738
  --icon-11-fill-1-letter-spacing: var(--letter-spacing-normal);
738
739
  --icon-11-fill-1-line-height: var(--line-height-leading-none);
739
740
  --icon-12-fill-0-font-family: var(--font-family-icon);
740
- --icon-12-fill-0-font-size: var(--font-size-54);
741
+ --icon-12-fill-0-font-size: var(--font-size-48);
741
742
  --icon-12-fill-0-font-weight: var(--font-weight-icon);
742
743
  --icon-12-fill-0-letter-spacing: var(--letter-spacing-normal);
743
744
  --icon-12-fill-0-line-height: var(--line-height-leading-none);
744
745
  --icon-12-fill-1-font-family: var(--font-family-icon);
745
- --icon-12-fill-1-font-size: var(--font-size-54);
746
+ --icon-12-fill-1-font-size: var(--font-size-48);
746
747
  --icon-12-fill-1-font-weight: var(--font-weight-icon);
747
748
  --icon-12-fill-1-letter-spacing: var(--letter-spacing-normal);
748
749
  --icon-12-fill-1-line-height: var(--line-height-leading-none);
750
+ --icon-13-fill-0-font-family: var(--font-family-icon);
751
+ --icon-13-fill-0-font-size: var(--font-size-54);
752
+ --icon-13-fill-0-font-weight: var(--font-weight-icon);
753
+ --icon-13-fill-0-letter-spacing: var(--letter-spacing-normal);
754
+ --icon-13-fill-0-line-height: var(--line-height-leading-none);
755
+ --icon-13-fill-1-font-family: var(--font-family-icon);
756
+ --icon-13-fill-1-font-size: var(--font-size-54);
757
+ --icon-13-fill-1-font-weight: var(--font-weight-icon);
758
+ --icon-13-fill-1-letter-spacing: var(--letter-spacing-normal);
759
+ --icon-13-fill-1-line-height: var(--line-height-leading-none);
749
760
 
750
761
  /* 角丸 - デフォルト値は設定可能 */
751
762
  /* NOTE: ここに書かれた var(--radius-*) は「置換前のデフォルト値」で、
@@ -1614,4 +1625,20 @@
1614
1625
  letter-spacing: var(--icon-12-fill-1-letter-spacing);
1615
1626
  line-height: var(--icon-12-fill-1-line-height);
1616
1627
  }
1628
+ .icon-13-fill-0 {
1629
+ font-family: var(--icon-13-fill-0-font-family);
1630
+ font-size: var(--icon-13-fill-0-font-size);
1631
+ font-weight: var(--icon-13-fill-0-font-weight);
1632
+ font-variation-settings: var(--font-weight-icon-fill-0);
1633
+ letter-spacing: var(--icon-13-fill-0-letter-spacing);
1634
+ line-height: var(--icon-13-fill-0-line-height);
1635
+ }
1636
+ .icon-13-fill-1 {
1637
+ font-family: var(--icon-13-fill-1-font-family);
1638
+ font-size: var(--icon-13-fill-1-font-size);
1639
+ font-weight: var(--icon-13-fill-1-font-weight);
1640
+ font-variation-settings: var(--font-weight-icon-fill-1);
1641
+ letter-spacing: var(--icon-13-fill-1-letter-spacing);
1642
+ line-height: var(--icon-13-fill-1-line-height);
1643
+ }
1617
1644
  }