lism-css 0.14.0 → 0.15.0

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.
Files changed (59) hide show
  1. package/README.ja.md +2 -2
  2. package/README.md +4 -3
  3. package/bin/build-config.js +1 -4
  4. package/bin/cli.mjs +13 -3
  5. package/config/defaults/props.ts +11 -14
  6. package/config/defaults/tokens.ts +1 -1
  7. package/config/defaults/traits.ts +4 -0
  8. package/dist/components/Lism/Lism.d.ts +2 -1
  9. package/dist/config/default-config.d.ts +5 -12
  10. package/dist/config/defaults/props.d.ts +5 -14
  11. package/dist/config/defaults/props.js +7 -12
  12. package/dist/config/defaults/tokens.d.ts +1 -1
  13. package/dist/config/defaults/tokens.js +1 -1
  14. package/dist/config/defaults/traits.d.ts +4 -0
  15. package/dist/config/defaults/traits.js +5 -1
  16. package/dist/config/index.d.ts +10 -24
  17. package/dist/css/base/set.css +1 -1
  18. package/dist/css/base.css +1 -1
  19. package/dist/css/main.css +1 -1
  20. package/dist/css/main_no_layer.css +1 -1
  21. package/dist/css/props.css +1 -1
  22. package/dist/css/trait.css +1 -0
  23. package/dist/css/utility.css +1 -1
  24. package/dist/lib/getLismProps.d.ts +5 -5
  25. package/dist/lib/getLismProps.js +101 -102
  26. package/dist/lib/types/TraitProps.d.ts +2 -2
  27. package/package.json +1 -1
  28. package/packages/astro/index.ts +3 -0
  29. package/packages/astro/layout/Flex/Flex.astro +3 -2
  30. package/packages/astro/layout/Flow/Flow.astro +2 -2
  31. package/packages/astro/types.ts +3 -0
  32. package/src/scss/_auto_output.scss +12 -11
  33. package/src/scss/_prop-config.scss +1 -11
  34. package/src/scss/_with_layer.scss +8 -4
  35. package/src/scss/base/_html.scss +3 -3
  36. package/src/scss/base/set/{_innerRs.scss → _bdrsInner.scss} +1 -1
  37. package/src/scss/base/set/_hov.scss +4 -4
  38. package/src/scss/base/set/_revert.scss +6 -0
  39. package/src/scss/base/set/index.scss +2 -4
  40. package/src/scss/base/tokens/_shadow.scss +18 -12
  41. package/src/scss/base/tokens/_tokens.scss +1 -12
  42. package/src/scss/main_no_layer.scss +4 -1
  43. package/src/scss/props/_hover.scss +27 -16
  44. package/src/scss/props/_size.scss +1 -1
  45. package/src/scss/{primitives/trait → trait}/_boxLink.scss +1 -1
  46. package/src/scss/{primitives/trait → trait}/_container.scss +2 -2
  47. package/src/scss/{base/set/_gutter.scss → trait/_hasGutter.scss} +1 -1
  48. package/src/scss/trait/_hasMask.scss +6 -0
  49. package/src/scss/trait/_hasSnap.scss +11 -0
  50. package/src/scss/trait/_hasTransition.scss +8 -0
  51. package/src/scss/{primitives/trait → trait}/index.scss +7 -1
  52. package/src/scss/utility/index.scss +0 -1
  53. package/dist/css/primitives/trait.css +0 -1
  54. package/src/scss/base/set/_mask.scss +0 -6
  55. package/src/scss/base/set/_transition.scss +0 -11
  56. package/src/scss/utility/_snap.scss +0 -8
  57. /package/src/scss/{primitives/trait → trait}/_coverLink.scss +0 -0
  58. /package/src/scss/{primitives/trait → trait}/_layer.scss +0 -0
  59. /package/src/scss/{primitives/trait → trait}/_wrapper.scss +0 -0
@@ -1,17 +1,23 @@
1
1
  /* --------------------------------------------------
2
2
  shadow
3
- Memo: `:root` だけで変数をセットしてしまうと --shc がその時点で固定されるので、再セットできる set--shadow クラスを用意している。
3
+ Memo: :root だけで --bxsh-- をセットしてしまうと --shc がその時点で固定されるので、
4
+ 要素ごとに --shc を上書きできるよう、再セット用の set--var:bxsh クラスを併用する。
4
5
  -------------------------------------------------- */
5
- :root,
6
- .set--shadow {
7
- --sh--5: var(--shsz--5) var(--shc);
8
- --sh--10: var(--shsz--10) var(--shc);
9
- --sh--20: var(--shsz--20) var(--shc);
10
- --sh--30: var(--shsz--30) var(--shc);
11
- --sh--40: var(--shsz--40) var(--shc);
6
+ :root {
7
+ --shc: hsl(220 4% 8% / 15%);
8
+
9
+ --shsz--10: 0px 1px 3px;
10
+ --shsz--20: 0px 2px 6px;
11
+ --shsz--30: 0px 4px 12px;
12
+ --shsz--40: 0px 8px 24px;
13
+ --shsz--50: 0px 16px 48px;
14
+ }
12
15
 
13
- --bxsh--10: var(--sh--5), var(--sh--10);
14
- --bxsh--20: var(--sh--10), var(--sh--20);
15
- --bxsh--30: var(--sh--20), var(--sh--30);
16
- --bxsh--40: var(--sh--30), var(--sh--40);
16
+ :root,
17
+ .set--var\:bxsh {
18
+ --bxsh--10: var(--shsz--10) var(--shc);
19
+ --bxsh--20: var(--shsz--20) var(--shc);
20
+ --bxsh--30: var(--shsz--30) var(--shc);
21
+ --bxsh--40: var(--shsz--40) var(--shc);
22
+ --bxsh--50: var(--shsz--50) var(--shc);
17
23
  }
@@ -77,18 +77,7 @@
77
77
  --bdrs--40: 1.5rem; // ≒ 24px
78
78
  --bdrs--99: 99rem;
79
79
 
80
- /**
81
- * shadow color, shadow inset, shadow size
82
- */
83
- --shc: hsl(220 4% 8% / 5%);
84
-
85
- --shsz--5: 0px 1px 3px;
86
- --shsz--10: 0px 2px 6px;
87
- --shsz--20: 0px 4px 12px;
88
- --shsz--30: 0px 8px 24px;
89
- --shsz--40: 0px 16px 48px;
90
-
91
- /**
80
+ /**
92
81
  * aspect-ratio
93
82
  */
94
83
  --ar--og: 1.91/1;
@@ -11,8 +11,11 @@
11
11
  // base
12
12
  @use './base/index' as base;
13
13
 
14
+ // Trait(独立レイヤー)
15
+ // primitive より弱い位置に配置。詳細は _with_layer.scss のコメント参照。
16
+ @use './trait/index' as trait;
17
+
14
18
  // Primitives
15
- @use './primitives/trait/index' as trait;
16
19
  @use './primitives/layout/index' as layout;
17
20
  @use './primitives/atomic/index' as atomic;
18
21
 
@@ -1,44 +1,55 @@
1
1
  @use '../_mixin' as mixin;
2
2
 
3
3
  @media (any-hover: hover) {
4
- .-hov\:c:hover {
4
+ /* ----------------------------------------
5
+ * .-hov:-{prop}
6
+ * ---------------------------------------- */
7
+ .-hov\:-c:hover {
5
8
  color: var(--hov-c, var(--link)) #{mixin.$maybe_important};
6
9
  }
7
- .-hov\:bdc:hover {
10
+ .-hov\:-bdc:hover {
8
11
  border-color: var(--hov-bdc, currentColor) #{mixin.$maybe_important};
9
12
  }
10
- .-hov\:bgc:hover {
13
+ .-hov\:-bgc:hover {
11
14
  background-color: var(--hov-bgc, var(--base-2)) #{mixin.$maybe_important};
12
15
  }
13
- .-hov\:o:hover {
16
+ .-hov\:-o:hover {
14
17
  opacity: var(--hov-o, 0.7) #{mixin.$maybe_important};
15
18
  }
16
- .-hov\:bxsh:hover {
17
- box-shadow: var(--hov-bxsh, var(--bxsh--40)) #{mixin.$maybe_important};
19
+ .-hov\:-bxsh:hover {
20
+ box-shadow: var(--hov-bxsh, var(--bxsh--50)) #{mixin.$maybe_important};
18
21
  }
19
22
 
20
- // 背景色が暗くも明るくても使えるように、ニュートラルグレーを配色。黒からの変化の方がわかりづらいため、グレーの中でも少し明るめを混ぜる。
23
+ /* ----------------------------------------
24
+ * .-hov:{preset}
25
+ * ---------------------------------------- */
26
+ // underlineをつけるシンプルなエフェクト
27
+ .-hov\:underline:hover {
28
+ text-decoration: underline;
29
+ }
30
+ // 背景色が暗くも明るくても使えるように、ニュートラルグレーを配色。
31
+ // Memo: 黒からの変化の方がわかりづらいため、グレーの中でも少し明るめを混ぜる。
21
32
  .-hov\:neutral:hover {
22
33
  background-color: color-mix(in srgb, var(--bgc, var(--base)), hsl(220, 5%, 75%) 25%) #{mixin.$maybe_important};
23
34
  }
24
35
  }
25
36
 
26
- // ------------------------------------------------------------
27
- // .-hov\:to
28
- // ------------------------------------------------------------
37
+ // ----------------------------------------
38
+ // .-hov\:in (set--var:hov 連動の consumer class)
39
+ // ----------------------------------------
29
40
 
30
- .-hov\:to\:hide {
31
- --transProp: opacity;
41
+ .-hov\:in\:hide {
42
+ --transitionProps: opacity;
32
43
  opacity: var(--_isHov, 0) #{mixin.$maybe_important};
33
44
  }
34
45
 
35
- .-hov\:to\:show {
36
- --transProp: opacity, visibility;
46
+ .-hov\:in\:show {
47
+ --transitionProps: opacity, visibility;
37
48
  opacity: var(--_notHov, 0) #{mixin.$maybe_important};
38
49
  visibility: var(--_notHov, hidden) #{mixin.$maybe_important};
39
50
  }
40
51
 
41
- .-hov\:to\:zoom {
42
- --transProp: scale;
52
+ .-hov\:in\:zoom {
53
+ --transitionProps: scale;
43
54
  scale: var(--_isHov, 1.1);
44
55
  }
@@ -1,7 +1,7 @@
1
1
  .-max-sz\:full {
2
2
  max-inline-size: 100%;
3
3
 
4
- :where(.set--gutter) > & {
4
+ :where(.has--gutter) > & {
5
5
  max-inline-size: calc(100% + var(--gutter-size) * 2);
6
6
  margin-inline: calc(var(--gutter-size) * -1);
7
7
  }
@@ -1,4 +1,4 @@
1
- @use '../../_mixin' as mixin;
1
+ @use '../_mixin' as mixin;
2
2
 
3
3
  .is--boxLink {
4
4
  position: relative;
@@ -6,7 +6,7 @@
6
6
  .is--container > * {
7
7
  --sz--container: 100cqi;
8
8
  }
9
- // set--gutterがある場合はその分を加算
10
- .is--container.set--gutter > * {
9
+ // has--gutterがある場合はその分を加算
10
+ .is--container.has--gutter > * {
11
11
  --sz--container: calc(100cqi + var(--gutter-size) * 2);
12
12
  }
@@ -1,3 +1,3 @@
1
- .set--gutter {
1
+ .has--gutter {
2
2
  padding-inline: var(--gutter-size);
3
3
  }
@@ -0,0 +1,6 @@
1
+ .has--mask {
2
+ --maskPos: 50%;
3
+ --maskSize: contain;
4
+ --maskRepeat: no-repeat;
5
+ mask: var(--maskImg) var(--maskRepeat) var(--maskPos) / var(--maskSize);
6
+ }
@@ -0,0 +1,11 @@
1
+ .has--snap {
2
+ --snapType: both mandatory;
3
+ --snapAlign: start;
4
+ --snapStop: normal;
5
+ scroll-snap-type: var(--snapType);
6
+
7
+ & > * {
8
+ scroll-snap-align: var(--snapAlign);
9
+ scroll-snap-stop: var(--snapStop);
10
+ }
11
+ }
@@ -0,0 +1,8 @@
1
+ .has--transition {
2
+ --duration: var(--transition-duration, 0.25s);
3
+ --ease: ease;
4
+ --delay: 0s;
5
+ --transitionProps: all;
6
+ transition: var(--duration) var(--ease) var(--delay);
7
+ transition-property: var(--transitionProps);
8
+ }
@@ -1,6 +1,12 @@
1
- // trait
1
+ // is-- (役割・存在の宣言)
2
2
  @forward './container';
3
3
  @forward './wrapper';
4
4
  @forward './boxLink';
5
5
  @forward './coverLink'; // Note: position の関係で、boxLink より後で読み込む
6
6
  @forward './layer';
7
+
8
+ // has-- (機能の付与)
9
+ @forward './hasTransition';
10
+ @forward './hasGutter';
11
+ @forward './hasSnap';
12
+ @forward './hasMask';
@@ -2,5 +2,4 @@
2
2
  @forward './cbox';
3
3
  @forward './itemDivider';
4
4
  @forward './hidden';
5
- @forward './snap';
6
5
  @forward './clipText';
@@ -1 +0,0 @@
1
- .is--container{container-type:inline-size}.is--container>*{--sz--container:100cqi}.is--container.set--gutter>*{--sz--container:calc(100cqi + var(--gutter-size)*2)}.is--wrapper{--contentSize:var(--sz--m,100%)}.is--wrapper>*{margin-inline:auto;max-inline-size:min(100%,var(--contentSize))}.-contentSize\:s{--contentSize:var(--sz--s)}.-contentSize\:l{--contentSize:var(--sz--l)}.is--boxLink{color:inherit;cursor:pointer;display:block;isolation:isolate;pointer-events:auto;position:relative;text-decoration:none}.is--boxLink a{position:relative;z-index:2}.is--coverLink{color:inherit;position:static;text-decoration:none}.is--coverLink:before{content:"";inset:0;position:absolute;z-index:1}.is--layer{inset:0;overflow:hidden;position:absolute}
@@ -1,6 +0,0 @@
1
- // .set--mask {
2
- // --maskPos: 50%;
3
- // --maskSize: contain;
4
- // --maskRepeat: no-repeat;
5
- // mask: var(--maskImg) var(--maskRepeat) var(--maskPos) / var(--maskSize);
6
- // }
@@ -1,11 +0,0 @@
1
- @use '../../_mixin' as mixin;
2
-
3
- .set--transition {
4
- transition: var(--hov-duration, 0.25s) var(--hov-ease, linear) var(--hov-delay, 0s);
5
- transition-property: var(--hov-prop, all);
6
- }
7
-
8
- // .-ease\:in {--ease: ease-in;}
9
- // .-ease\:out {--ease: ease-out;}
10
- // .-ease\:in-out {--ease: ease-in-out;}
11
- // .-ease\:linear {--ease: linear;}
@@ -1,8 +0,0 @@
1
- .u--snap {
2
- scroll-snap-type: var(--snapType, both mandatory);
3
-
4
- & > * {
5
- scroll-snap-align: var(--snapAlign, start);
6
- scroll-snap-stop: var(--snapStop, normal);
7
- }
8
- }