@inc2734/unitone-css 0.102.3 → 1.0.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 (95) hide show
  1. package/dist/app.css +1 -1
  2. package/dist/app.js +1 -1
  3. package/dist/library.js +1 -1
  4. package/package.json +2 -4
  5. package/src/app.js +0 -1
  6. package/src/behaviors/_divider.scss +27 -0
  7. package/src/behaviors/_font-size.scss +11 -0
  8. package/src/behaviors/_index.scss +4 -2
  9. package/src/behaviors/_negative-gap.scss +2 -16
  10. package/src/behaviors/_padding.scss +0 -12
  11. package/src/compatibility/index.js +1 -1
  12. package/src/foundation/_index.scss +141 -1
  13. package/src/layout-primitives/_index.scss +49 -1
  14. package/src/layout-primitives/both-sides/_index.scss +31 -1
  15. package/src/layout-primitives/center/_index.scss +22 -1
  16. package/src/layout-primitives/cluster/_index.scss +104 -1
  17. package/src/layout-primitives/container/_index.scss +18 -1
  18. package/src/layout-primitives/cover/_index.scss +86 -1
  19. package/src/layout-primitives/decorator/_index.scss +109 -1
  20. package/src/layout-primitives/float/_index.scss +29 -1
  21. package/src/layout-primitives/frame/_index.scss +36 -1
  22. package/src/layout-primitives/gutters/_index.scss +30 -1
  23. package/src/layout-primitives/layers/_index.scss +141 -1
  24. package/src/layout-primitives/marquee/_index.scss +73 -1
  25. package/src/layout-primitives/masonry/_index.scss +26 -1
  26. package/src/layout-primitives/popover/_index.scss +1 -1
  27. package/src/layout-primitives/reel/_index.scss +55 -1
  28. package/src/layout-primitives/responsive-grid/_index.scss +225 -1
  29. package/src/layout-primitives/stack/_index.scss +182 -1
  30. package/src/layout-primitives/switcher/_index.scss +70 -1
  31. package/src/layout-primitives/text/_index.scss +144 -1
  32. package/src/layout-primitives/texture/_index.scss +271 -1
  33. package/src/layout-primitives/vertical-writing/_index.scss +118 -1
  34. package/src/layout-primitives/with-sidebar/_index.scss +304 -1
  35. package/src/library.js +0 -48
  36. package/src/settings/_body.scss +0 -1
  37. package/src/settings/_index.scss +3 -1
  38. package/src/settings/_root.scss +47 -9
  39. package/src/utilities/_font-size.scss +8 -15
  40. package/src/utilities/_index.scss +0 -1
  41. package/src/variables/_index.scss +83 -1
  42. package/dist/compatibility/fluid-typography.js +0 -1
  43. package/dist/compatibility/index.js +0 -1
  44. package/src/behaviors/_typography.scss +0 -21
  45. package/src/compatibility/fluid-typography.js +0 -18
  46. package/src/foundation/_foundation-core.scss +0 -135
  47. package/src/foundation/_foundation.scss +0 -3
  48. package/src/helper/_helper.scss +0 -3
  49. package/src/layout-primitives/_layout-primitives-core.scss +0 -49
  50. package/src/layout-primitives/_layout-primitives.scss +0 -3
  51. package/src/layout-primitives/both-sides/_both-sides-core.scss +0 -31
  52. package/src/layout-primitives/both-sides/_both-sides.scss +0 -3
  53. package/src/layout-primitives/center/_center-core.scss +0 -22
  54. package/src/layout-primitives/center/_center.scss +0 -3
  55. package/src/layout-primitives/cluster/_cluster-core.scss +0 -126
  56. package/src/layout-primitives/cluster/_cluster.scss +0 -3
  57. package/src/layout-primitives/container/_container-core.scss +0 -18
  58. package/src/layout-primitives/container/_container.scss +0 -3
  59. package/src/layout-primitives/cover/_cover-core.scss +0 -86
  60. package/src/layout-primitives/cover/_cover.scss +0 -3
  61. package/src/layout-primitives/decorator/_decorator-core.scss +0 -109
  62. package/src/layout-primitives/decorator/_decorator.scss +0 -3
  63. package/src/layout-primitives/float/_float-core.scss +0 -29
  64. package/src/layout-primitives/float/_float.scss +0 -3
  65. package/src/layout-primitives/frame/_frame-core.scss +0 -36
  66. package/src/layout-primitives/frame/_frame.scss +0 -3
  67. package/src/layout-primitives/gutters/_gutters-core.scss +0 -12
  68. package/src/layout-primitives/gutters/_gutters.scss +0 -3
  69. package/src/layout-primitives/layers/_layers-core.scss +0 -141
  70. package/src/layout-primitives/layers/_layers.scss +0 -3
  71. package/src/layout-primitives/marquee/_marquee-core.scss +0 -73
  72. package/src/layout-primitives/marquee/_marquee.scss +0 -3
  73. package/src/layout-primitives/masonry/_masonry-core.scss +0 -26
  74. package/src/layout-primitives/masonry/_masonry.scss +0 -3
  75. package/src/layout-primitives/reel/_reel-core.scss +0 -55
  76. package/src/layout-primitives/reel/_reel.scss +0 -3
  77. package/src/layout-primitives/responsive-grid/_responsive-grid-core.scss +0 -249
  78. package/src/layout-primitives/responsive-grid/_responsive-grid.scss +0 -3
  79. package/src/layout-primitives/stack/_stack-core.scss +0 -201
  80. package/src/layout-primitives/stack/_stack.scss +0 -3
  81. package/src/layout-primitives/switcher/_switcher-core.scss +0 -70
  82. package/src/layout-primitives/switcher/_switcher.scss +0 -3
  83. package/src/layout-primitives/text/_text-core.scss +0 -169
  84. package/src/layout-primitives/text/_text.scss +0 -3
  85. package/src/layout-primitives/texture/_texture-core.scss +0 -271
  86. package/src/layout-primitives/texture/_texture.scss +0 -3
  87. package/src/layout-primitives/vertical-writing/_vertical-writing-core.scss +0 -118
  88. package/src/layout-primitives/vertical-writing/_vertical-writing.scss +0 -3
  89. package/src/layout-primitives/with-sidebar/_with-sidebar-core.scss +0 -337
  90. package/src/layout-primitives/with-sidebar/_with-sidebar.scss +0 -3
  91. package/src/settings/_settings-core.scss +0 -3
  92. package/src/settings/_settings.scss +0 -3
  93. package/src/utilities/_typography.scss +0 -5
  94. package/src/variables/_variables-core.scss +0 -79
  95. package/src/variables/_variables.scss +0 -3
@@ -1 +1,104 @@
1
- @forward './cluster-core';
1
+ @mixin abstract-cluster() {
2
+ --unitone--align-items: strech;
3
+ --unitone--gap: var(--unitone--global--text-gap);
4
+ --unitone--column-gap: var(--unitone--gap);
5
+ --unitone--row-gap: var(--unitone--gap);
6
+ --unitone--justify-content: start;
7
+
8
+ display: flex;
9
+ flex-wrap: wrap;
10
+ column-gap: var(--unitone--column-gap);
11
+ row-gap: var(--unitone--row-gap);
12
+ justify-content: var(--unitone--justify-content);
13
+ align-items: var(--unitone--align-items);
14
+ list-style: none;
15
+
16
+ > * {
17
+ margin: 0;
18
+ min-width: 0;
19
+ }
20
+
21
+ &:where([data-unitone-layout~="-nowrap"]) {
22
+ flex-wrap: nowrap;
23
+ width: max-content;
24
+
25
+ > * {
26
+ flex-shrink: 0;
27
+ }
28
+ }
29
+
30
+ &:where([data-unitone-layout*="-divider\:"]) {
31
+ > * {
32
+ display: flex;
33
+ flex-direction: column;
34
+ justify-content: var(--unitone--align-items);
35
+ }
36
+ }
37
+
38
+ &[data-unitone-layout~="-divider\:stripe"] {
39
+ column-gap: 0;
40
+ align-items: stretch;
41
+
42
+ > * {
43
+ padding: 0 calc(var(--unitone--column-gap) + var(--unitone--divider-width));
44
+
45
+ &::before {
46
+ border-width: 0 var(--unitone--divider-width);
47
+ }
48
+ }
49
+
50
+ > :not([data-unitone-layout~="-bol"]) {
51
+ padding-left: var(--unitone--column-gap);
52
+
53
+ &::before {
54
+ border-left: 0;
55
+ }
56
+ }
57
+ }
58
+
59
+ &[data-unitone-layout~="-divider\:slash"] {
60
+ column-gap: calc(var(--unitone--column-gap) * 2 + var(--unitone--divider-width));
61
+ align-items: stretch;
62
+
63
+ > * + :not([data-unitone-layout~="-bol"])::before {
64
+ right: auto;
65
+ left: calc(var(--unitone--column-gap) * -1 - var(--unitone--divider-width));
66
+ border-left-width: var(--unitone--divider-width);
67
+ border-color: color-mix(in oklab, var(--unitone--divider-color) 97%, #000);
68
+ transform: rotate(22.5deg) scale(.8);
69
+ }
70
+ }
71
+
72
+ &[data-unitone-layout~="-divider\:bordered"] {
73
+ gap: 0;
74
+ align-items: stretch;
75
+
76
+ > * {
77
+ padding:
78
+ calc(var(--unitone--row-gap) + var(--unitone--divider-width))
79
+ calc(var(--unitone--column-gap) + var(--unitone--divider-width));
80
+
81
+ &::before {
82
+ border-width: var(--unitone--divider-width);
83
+ }
84
+ }
85
+
86
+ > :not([data-unitone-layout~="-bol"]) {
87
+ padding-left: var(--unitone--column-gap);
88
+
89
+ &::before {
90
+ border-left-width: 0;
91
+ }
92
+ }
93
+
94
+ > [data-unitone-layout~="-linewrap"] {
95
+ margin-top: calc(var(--unitone--divider-width) * -1);
96
+ }
97
+ }
98
+ }
99
+
100
+ @mixin cluster() {
101
+ [data-unitone-layout~="cluster"] {
102
+ @include abstract-cluster();
103
+ }
104
+ }
@@ -1 +1,18 @@
1
- @forward './container-core';
1
+ @mixin abstract-container() {
2
+ --unitone--gutters: var(--unitone--global--gutters);
3
+ --unitone--max-width: var(--unitone--container-max-width);
4
+
5
+ box-sizing: content-box;
6
+ margin-right: auto;
7
+ margin-left: auto;
8
+ padding-right: var(--unitone--gutters);
9
+ padding-left: var(--unitone--gutters);
10
+ max-width: 100%;
11
+ width: min(100% - var(--unitone--gutters) * 2, var(--unitone--max-width));
12
+ }
13
+
14
+ @mixin container() {
15
+ [data-unitone-layout~="container"] {
16
+ @include abstract-container();
17
+ }
18
+ }
@@ -1 +1,86 @@
1
- @forward './cover-core';
1
+ @mixin abstract-cover() {
2
+ --unitone--gap: var(--unitone--global--gap);
3
+ --unitone--padding: var(--unitone--gap);
4
+ --unitone--padding-top: var(--unitone--padding);
5
+ --unitone--padding-right: var(--unitone--padding);
6
+ --unitone--padding-bottom: var(--unitone--padding);
7
+ --unitone--padding-left: var(--unitone--padding);
8
+ --unitone--min-height: 100svh;
9
+
10
+ position: relative;
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: var(--unitone--gap);
14
+ min-height: var(--unitone--min-height);
15
+ padding-top: var(--unitone--padding-top);
16
+ padding-right: var(--unitone--padding-right);
17
+ padding-bottom: var(--unitone--padding-bottom);
18
+ padding-left: var(--unitone--padding-left);
19
+
20
+ > * {
21
+ margin-top: 0;
22
+ margin-bottom: 0;
23
+ }
24
+
25
+ // @deprecated
26
+ &[data-unitone-layout~="-no-padding"] {
27
+ padding: 0;
28
+ }
29
+ }
30
+
31
+ @mixin abstract-cover__content() {
32
+ --unitone--position: static;
33
+ --unitone--top: initial;
34
+ --unitone--right: initial;
35
+ --unitone--bottom: initial;
36
+ --unitone--left: initial;
37
+ --unitone--z-index: initial;
38
+
39
+ position: var(--unitone--position) !important;
40
+ top: var(--unitone--top);
41
+ right: var(--unitone--right);
42
+ bottom: var(--unitone--bottom);
43
+ left: var(--unitone--left);
44
+ z-index: var(--unitone--z-index);
45
+ margin-top: auto;
46
+ margin-bottom: auto;
47
+
48
+ &:is(
49
+ [data-unitone-layout~="-valign:top"],
50
+ [data-unitone-layout~="-valign:start"]
51
+ ) {
52
+ margin-top: 0;
53
+ margin-bottom: auto;
54
+ }
55
+
56
+ &[data-unitone-layout~="-valign:center"] {
57
+ margin-top: auto;
58
+ margin-bottom: auto;
59
+ }
60
+
61
+ &:is(
62
+ [data-unitone-layout~="-valign:bottom"],
63
+ [data-unitone-layout~="-valign:end"]
64
+ ) {
65
+ margin-top: auto;
66
+ margin-bottom: 0;
67
+ }
68
+
69
+ &:is([data-unitone-layout~="-valign:top"], [data-unitone-layout~="-valign:start"]) + &[data-unitone-layout~="-valign:center"] {
70
+ margin-top: 0;
71
+ }
72
+
73
+ &[data-unitone-layout~="-valign:center"] + &:is([data-unitone-layout~="-valign:bottom"], [data-unitone-layout~="-valign:end"]) {
74
+ margin-top: 0;
75
+ }
76
+ }
77
+
78
+ @mixin cover() {
79
+ [data-unitone-layout~="cover"] {
80
+ @include abstract-cover();
81
+ }
82
+
83
+ [data-unitone-layout~="cover__content"] {
84
+ @include abstract-cover__content();
85
+ }
86
+ }
@@ -1 +1,109 @@
1
- @forward './decorator-core';
1
+ @mixin abstract-decorator() {
2
+ --unitone--background-color: transparent;
3
+ --unitone--color: inherit;
4
+ --unitone--border-color: transparent;
5
+ --unitone--border-width: 0;
6
+ --unitone--border-radius: 0;
7
+ --unitone--max-height: none;
8
+ --unitone--min-height: 0px;
9
+ --unitone--max-width: 100%;
10
+ --unitone--min-width: 0;
11
+ --unitone--padding: 0px;
12
+ --unitone--padding-top: var(--unitone--padding);
13
+ --unitone--padding-right: var(--unitone--padding);
14
+ --unitone--padding-bottom: var(--unitone--padding);
15
+ --unitone--padding-left: var(--unitone--padding);
16
+ --unitone--box-shadow: none;
17
+ --unitone--mix-blend-mode: normal;
18
+ --unitone--overflow: visible;
19
+ --unitone--backdrop-filter: none;
20
+
21
+ --unitone--align-content: normal;
22
+ --unitone--justify-items: legacy;
23
+ --unitone--gap: 0px;
24
+
25
+ --unitone--progressive-backdrop-filter-angle: 180deg;
26
+ --unitone--progressive-backdrop-filter-start: 0%;
27
+
28
+ --unitone--position: static;
29
+ --unitone--top: initial;
30
+ --unitone--right: initial;
31
+ --unitone--bottom: initial;
32
+ --unitone--left: initial;
33
+ --unitone--z-index: initial;
34
+
35
+ appearance: none;
36
+ border: var(--unitone--border-width) solid var(--unitone--border-color);
37
+ border-radius: var(--unitone--border-radius);
38
+ color: var(--unitone--color);
39
+ background-color: var(--unitone--background-color);
40
+ box-shadow: var(--unitone--box-shadow);
41
+ max-height: var(--unitone--max-height);
42
+ min-height: var(--unitone--min-height);
43
+ max-width: var(--unitone--max-width);
44
+ padding-top: var(--unitone--padding-top);
45
+ padding-right: var(--unitone--padding-right);
46
+ padding-bottom: var(--unitone--padding-bottom);
47
+ padding-left: var(--unitone--padding-left);
48
+ mix-blend-mode: var(--unitone--mix-blend-mode);
49
+ overflow: var(--unitone--overflow);
50
+ backdrop-filter: var(--unitone--backdrop-filter);
51
+ position: var(--unitone--position) !important;
52
+ top: var(--unitone--top);
53
+ right: var(--unitone--right);
54
+ bottom: var(--unitone--bottom);
55
+ left: var(--unitone--left);
56
+ z-index: var(--unitone--z-index);
57
+
58
+ // There are primitives that affect the min-width of child elements,
59
+ // so we will increase the specificity a little to avoid this effect.
60
+ &:not(:root) {
61
+ min-width: var(--unitone--min-width);
62
+ }
63
+
64
+ &:where([data-unitone-layout~="-shadow"]) {
65
+ --unitone--box-shadow: var(--unitone--global--box-shadow);
66
+ }
67
+
68
+ &:where([data-unitone-layout~="-progressive-backdrop-filter"]) {
69
+ mask-image: linear-gradient(
70
+ var(--unitone--progressive-backdrop-filter-angle),
71
+ rgba(0 0 0 / 0%) calc(var(--unitone--progressive-backdrop-filter-start) - 20%),
72
+ rgba(0 0 0 / 100%) var(--unitone--progressive-backdrop-filter-start)
73
+ );
74
+ }
75
+
76
+ &:where(
77
+ [data-unitone-layout*="-gap\:"],
78
+ [style*="--unitone--gap\:"],
79
+ [data-unitone-layout*="-align-content\:"],
80
+ [data-unitone-layout*="-justify-items\:"]
81
+ ) {
82
+ display: grid;
83
+
84
+ > * {
85
+ min-width: 0;
86
+ }
87
+ }
88
+
89
+ &:where(
90
+ [data-unitone-layout*="-gap\:"],
91
+ [style*="--unitone--gap\:"]
92
+ ) {
93
+ gap: var(--unitone--gap);
94
+ }
95
+
96
+ &:where([data-unitone-layout*="-align-content\:"]) {
97
+ align-content: var(--unitone--align-content);
98
+ }
99
+
100
+ &:where([data-unitone-layout*="-justify-items\:"]) {
101
+ justify-items: var(--unitone--justify-items);
102
+ }
103
+ }
104
+
105
+ @mixin decorator() {
106
+ [data-unitone-layout~="decorator"] {
107
+ @include abstract-decorator();
108
+ }
109
+ }
@@ -1 +1,29 @@
1
- @forward './float-core';
1
+ @mixin abstract-float() {
2
+ --unitone--gap: var(--unitone--global--gap);
3
+ --unitone--min-measure: calc(var(--unitone--measure) / 2);
4
+ --unitone--min-width: 33.33333%;
5
+
6
+ width: max(
7
+ min(var(--unitone--min-width), 100%),
8
+ min((var(--unitone--min-width) + var(--unitone--gap) + var(--unitone--min-measure) - 100%) * 999, 100%)
9
+ );
10
+
11
+ &[data-unitone-layout~="-position\:left"],
12
+ &:not([data-unitone-layout~="-position\:right"]) {
13
+ float: left;
14
+ margin-right: var(--unitone--gap);
15
+ margin-bottom: var(--unitone--gap);
16
+ }
17
+
18
+ &[data-unitone-layout~="-position\:right"] {
19
+ float: right;
20
+ margin-left: var(--unitone--gap);
21
+ margin-bottom: var(--unitone--gap);
22
+ }
23
+ }
24
+
25
+ @mixin float() {
26
+ [data-unitone-layout~="float"] {
27
+ @include abstract-float();
28
+ }
29
+ }
@@ -1 +1,36 @@
1
- @forward './frame-core';
1
+ @mixin abstract-frame() {
2
+ --unitone--ratio: 16/9;
3
+
4
+ position: relative;
5
+ aspect-ratio: var(--unitone--ratio) !important;
6
+ overflow: hidden;
7
+
8
+ > * {
9
+ height: 100%;
10
+ width: 100%;
11
+ }
12
+
13
+ img,
14
+ video {
15
+ height: 100% !important;
16
+ width: 100% !important;
17
+ max-height: 100% !important;
18
+ max-width: 100% !important;
19
+ min-height: 0 !important;
20
+ min-width: 0 !important;
21
+ object-fit: cover;
22
+ vertical-align: top;
23
+ }
24
+
25
+ @media (orientation: portrait) and (max-width: 599px) {
26
+ &[data-unitone-layout~="-switch"] {
27
+ aspect-ratio: calc(1 / (var(--unitone--ratio))) !important;
28
+ }
29
+ }
30
+ }
31
+
32
+ @mixin frame() {
33
+ [data-unitone-layout~="frame"] {
34
+ @include abstract-frame();
35
+ }
36
+ }
@@ -1 +1,30 @@
1
- @forward './gutters-core';
1
+ @mixin abstract-gutters() {
2
+ --unitone--padding: var(--unitone--s4);
3
+
4
+ padding-top: var(--unitone--padding);
5
+ padding-bottom: var(--unitone--padding);
6
+
7
+ @for $i from -3 through 7 {
8
+ &[data-unitone-layout~="-padding\:#{ $i }"] {
9
+ --unitone--padding: var(--unitone--s#{ $i }) !important;
10
+ }
11
+ }
12
+
13
+ @for $i from 1 through 7 {
14
+ &[data-unitone-layout~="-padding\:#{ $i }s"] {
15
+ --unitone--padding: var(--unitone--s#{ $i }s) !important;
16
+ }
17
+ }
18
+
19
+ @for $i from 2 through 7 {
20
+ &[data-unitone-layout~="-padding\:#{ $i }m"] {
21
+ --unitone--padding: var(--unitone--s#{ $i }m) !important;
22
+ }
23
+ }
24
+ }
25
+
26
+ @mixin gutters() {
27
+ [data-unitone-layout~="gutters"] {
28
+ @include abstract-gutters();
29
+ }
30
+ }
@@ -1 +1,141 @@
1
- @forward './layers-core';
1
+ @mixin abstract-layers() {
2
+ --unitone--columns: var(--unitone--grid-columns);
3
+ --unitone--rows: var(--unitone--grid-rows);
4
+ --unitone--row-track-size: 1fr;
5
+ --unitone--gap: initial;
6
+ --unitone--column-gap: var(--unitone--gap, var(--unitone--global--text-gap));
7
+ --unitone--row-gap: var(--unitone--gap, 1lh);
8
+ --unitone--min-height: 0;
9
+ --unitone--blur: 75px;
10
+
11
+ display: grid;
12
+ grid-template-columns: repeat(var(--unitone--columns), 1fr);
13
+ grid-template-rows: repeat(
14
+ var(--unitone--rows),
15
+ var(--unitone--row-track-size)
16
+ );
17
+ column-gap: min(3.33333%, var(--unitone--column-gap));
18
+ row-gap: var(--unitone--row-gap);
19
+ min-height: var(--unitone--min-height);
20
+
21
+ @media (orientation: portrait) and (max-width: 599px) {
22
+ &[data-unitone-layout~="-portrait"] {
23
+ --unitone--columns: var(--unitone--grid-rows);
24
+ --unitone--rows: var(--unitone--grid-columns);
25
+ }
26
+ }
27
+
28
+ > * {
29
+ --unitone--align-self: stretch;
30
+ --unitone--justify-self: stretch;
31
+ --unitone--grid-column: 1/-1;
32
+ --unitone--grid-row: 1/-1;
33
+ --unitone--mix-blend-mode: normal;
34
+
35
+ grid-column: var(--unitone--grid-column);
36
+ grid-row: var(--unitone--grid-row);
37
+ align-self: var(--unitone--align-self);
38
+ justify-self: var(--unitone--justify-self);
39
+ min-width: 0;
40
+ mix-blend-mode: var(--unitone--mix-blend-mode);
41
+ }
42
+
43
+ @at-root {
44
+ :where(#{ & } > *) {
45
+ --unitone--max-width: 100%;
46
+ --unitone--min-height: auto;
47
+
48
+ position: relative;
49
+ max-width: var(--unitone--max-width);
50
+ min-height: var(--unitone--min-height);
51
+ }
52
+ }
53
+
54
+ &[data-unitone-layout~="-cover"],
55
+ &[data-unitone-layout~="-fill"],
56
+ &[data-unitone-layout~="-fixed"] {
57
+ position: relative;
58
+
59
+ > figure:first-child,
60
+ > :first-child figure {
61
+ margin: 0;
62
+ display: block;
63
+ width: 100%;
64
+ height: 100%;
65
+ }
66
+
67
+ > img:first-child,
68
+ > video:first-child,
69
+ > :first-child img,
70
+ > :first-child video {
71
+ display: block;
72
+ object-fit: cover;
73
+ object-position: 50% 50%;
74
+ height: 100%;
75
+ width: 100%;
76
+ }
77
+ }
78
+
79
+ &[data-unitone-layout~="-cover"] {
80
+ > img:first-child,
81
+ > video:first-child,
82
+ > :first-child img,
83
+ > :first-child video {
84
+ position: absolute;
85
+ inset: 0;
86
+ }
87
+
88
+ @at-root {
89
+ :where(#{ & } > *) {
90
+ position: relative;
91
+ }
92
+
93
+ // @todo Since decorator's position is !important, it must be overridden by CSS variables.
94
+ :where(#{ & } > [data-unitone-layout~="decorator"]) {
95
+ --unitone--position: relative;
96
+ }
97
+ }
98
+ }
99
+
100
+ &[data-unitone-layout~="-fixed"] {
101
+ clip-path: inset(0);
102
+
103
+ > img:first-child,
104
+ > video:first-child,
105
+ > :first-child img,
106
+ > :first-child video {
107
+ position: fixed;
108
+ inset: 0;
109
+ }
110
+
111
+ @at-root {
112
+ // @todo Since decorator's position is !important, it must be overridden by CSS variables.
113
+ :where(#{ & } > [data-unitone-layout~="decorator"]) {
114
+ --unitone--position: relative;
115
+ }
116
+ }
117
+ }
118
+
119
+ &[data-unitone-layout~="-blur"] {
120
+ overflow: hidden;
121
+
122
+ &[data-unitone-layout~="-cover"],
123
+ &[data-unitone-layout~="-fill"] {
124
+ > :where(img:first-child, video:first-child),
125
+ > :first-child :where(img, video) {
126
+ transform: scale(1.5);
127
+ }
128
+ }
129
+
130
+ > :where(img:first-child, video:first-child),
131
+ > :first-child :where(img, video) {
132
+ filter: blur(var(--unitone--blur));
133
+ }
134
+ }
135
+ }
136
+
137
+ @mixin layers() {
138
+ [data-unitone-layout~="layers"] {
139
+ @include abstract-layers();
140
+ }
141
+ }
@@ -1 +1,73 @@
1
- @forward './marquee-core';
1
+ @mixin abstract-marquee-wrapper() {
2
+ --unitone--animation-duration: 20s;
3
+ --unitone--gap: var(--unitone--global--text-gap);
4
+ --unitone--item-width: auto;
5
+
6
+ display: flex;
7
+ gap: var(--unitone--gap);
8
+ overflow: clip;
9
+
10
+ &[data-unitone-layout~="-reverse"] {
11
+ flex-direction: row-reverse;
12
+
13
+ > [data-unitone-layout~="marquee:initialized"] {
14
+ animation-name: marquee-reverse;
15
+ }
16
+ }
17
+
18
+ @media (any-hover: hover) {
19
+ &[data-unitone-layout~="-pause-on-hover"]:hover {
20
+ > [data-unitone-layout~="marquee:initialized"] {
21
+ animation-play-state: paused;
22
+ }
23
+ }
24
+ }
25
+
26
+ &[data-unitone-layout~="-pause-on-hover"]:focus-within {
27
+ > [data-unitone-layout~="marquee:initialized"] {
28
+ animation-play-state: paused;
29
+ }
30
+ }
31
+ }
32
+
33
+ @mixin abstract-marquee() {
34
+ flex-shrink: 0;
35
+ display: flex;
36
+ gap: inherit;
37
+ align-items: center;
38
+ justify-content: space-around;
39
+ min-width: 100%;
40
+
41
+ &[data-unitone-layout~="marquee:initialized"] {
42
+ animation-name: marquee;
43
+ animation-timing-function: linear;
44
+ animation-duration: var(--unitone--animation-duration);
45
+ animation-iteration-count: infinite;
46
+ }
47
+
48
+ > * {
49
+ flex: 0 0 var(--unitone--item-width);
50
+ max-width: var(--unitone--item-width);
51
+ min-width: 0;
52
+ }
53
+ }
54
+
55
+ @mixin marquee() {
56
+ [data-unitone-layout~="marquee-wrapper"] {
57
+ @include abstract-marquee-wrapper();
58
+ }
59
+
60
+ [data-unitone-layout~="marquee"] {
61
+ @include abstract-marquee();
62
+ }
63
+ }
64
+
65
+ @keyframes marquee {
66
+ 0% { translate: 0; }
67
+ 100% { translate: calc(-100% - var(--unitone--gap)); }
68
+ }
69
+
70
+ @keyframes marquee-reverse {
71
+ 0% { translate: 0; }
72
+ 100% { translate: calc(100% + var(--unitone--gap)); }
73
+ }
@@ -1 +1,26 @@
1
- @forward './masonry-core';
1
+ @mixin abstract-masonry() {
2
+ --unitone--gap: var(--unitone--s-2);
3
+ --unitone--column-width: calc(var(--unitone--measure) / 3);
4
+
5
+ display: block;
6
+ gap: var(--unitone--gap);
7
+ column-width: var(--unitone--column-width);
8
+
9
+ > * + * {
10
+ margin-top: var(--unitone--gap);
11
+ }
12
+
13
+ > figure,
14
+ > figure img,
15
+ > img {
16
+ width: 100%;
17
+ max-width: 100%;
18
+ break-inside: avoid;
19
+ }
20
+ }
21
+
22
+ @mixin masonry() {
23
+ [data-unitone-layout~="masonry"] {
24
+ @include abstract-masonry();
25
+ }
26
+ }
@@ -60,7 +60,6 @@
60
60
  --unitone--color: #fff;
61
61
  --unitone--border-radius: var(--unitone--global--border-radius);
62
62
  --unitone--box-shadow: none;
63
- --unitone--font-size: -1;
64
63
  --unitone--padding: var(--unitone--s-1);
65
64
 
66
65
  margin-inline: auto;
@@ -70,6 +69,7 @@
70
69
  border-radius: var(--unitone--border-radius);
71
70
  padding: calc(var(--unitone--padding) / 2) var(--unitone--padding);
72
71
  width: fit-content;
72
+ font-size: var(--unitone--font-size-s);
73
73
 
74
74
  &:where([data-unitone-layout~="-shadow"]) {
75
75
  --unitone--box-shadow: var(--unitone--global--box-shadow);