@splendidlabz/styles 2.3.2 → 3.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 (147) hide show
  1. package/dist/no-tw/layouts.css +1278 -0
  2. package/dist/no-tw/styles.css +2018 -0
  3. package/dist/styles.css +1254 -1442
  4. package/package.json +23 -9
  5. package/src/addons/index.css +1 -0
  6. package/src/addons/scrollbars.css +60 -0
  7. package/src/{UI/_Accordion.scss → components/accordion.css} +8 -10
  8. package/src/components/drawer.css +20 -0
  9. package/src/components/index.css +2 -0
  10. package/src/effects/elevation.css +290 -0
  11. package/src/effects/frosted-glass.css +42 -0
  12. package/src/effects/gradients.css +107 -0
  13. package/src/effects/highlight.css +13 -0
  14. package/src/effects/index.css +6 -0
  15. package/src/effects/inner-border.css +18 -0
  16. package/src/effects/shadows.css +49 -0
  17. package/src/effects/text-outline.css +27 -0
  18. package/src/form/index.css +2 -0
  19. package/src/form/text-field.css +72 -0
  20. package/src/form/textarea.css +37 -0
  21. package/src/{Base/_Accessibility.scss → generic/accessibility.css} +21 -20
  22. package/src/generic/anchors-and-buttons.css +55 -0
  23. package/src/generic/form.css +62 -0
  24. package/src/generic/index.css +4 -0
  25. package/src/generic/typography.css +48 -0
  26. package/src/layouts/index.css +6 -0
  27. package/src/layouts/macro/flex-grid.css +33 -0
  28. package/src/layouts/macro/grid.css +127 -0
  29. package/src/layouts/macro/index.css +5 -0
  30. package/src/layouts/macro/masonry.css +23 -0
  31. package/src/layouts/macro/subgrid.css +33 -0
  32. package/src/layouts/macro/wrap.css +6 -0
  33. package/src/layouts/micro/breakout.css +38 -0
  34. package/src/layouts/micro/divider.css +102 -0
  35. package/src/layouts/micro/index.css +6 -0
  36. package/src/layouts/micro/micro.css +54 -0
  37. package/src/layouts/micro/scrollable.css +70 -0
  38. package/src/layouts/micro/stack.css +29 -0
  39. package/src/layouts/micro/stacking-context.css +3 -0
  40. package/src/layouts/position/edge.css +429 -0
  41. package/src/layouts/position/fixed.css +102 -0
  42. package/src/layouts/position/index.css +5 -0
  43. package/src/layouts/position/nudge.css +74 -0
  44. package/src/layouts/position/pos.css +337 -0
  45. package/src/layouts/position/sticky.css +11 -0
  46. package/src/layouts/shell/index.css +2 -0
  47. package/src/layouts/shell/shell-grid.css +34 -0
  48. package/src/layouts/shell/shell-simple.css +15 -0
  49. package/src/primitives/backdrop.css +8 -0
  50. package/src/{utils/_mixins.scss → primitives/break-word.css} +4 -2
  51. package/src/primitives/card.css +51 -0
  52. package/src/primitives/focus-within.css +12 -0
  53. package/src/primitives/hero-heading.css +44 -0
  54. package/src/primitives/indent-list.css +77 -0
  55. package/src/primitives/index.css +11 -0
  56. package/src/{Components/_Prose.scss → primitives/prose.css} +11 -29
  57. package/src/primitives/shapes.css +16 -0
  58. package/src/primitives/simple-svg.css +7 -0
  59. package/src/primitives/table.css +197 -0
  60. package/src/primitives/text.css +4 -0
  61. package/src/primitives/writing-mode.css +51 -0
  62. package/src/reset.css +114 -0
  63. package/src/scripts/Masonry.js +8 -0
  64. package/src/scripts/Scrollable.js +14 -0
  65. package/src/scripts/Sticky.js +34 -0
  66. package/src/scripts/all.js +7 -0
  67. package/src/scripts/index.js +4 -0
  68. package/src/styles.css +14 -0
  69. package/src/tools/border.css +9 -0
  70. package/src/tools/index.css +5 -0
  71. package/src/tools/object.css +5 -0
  72. package/src/tools/outlines.css +27 -0
  73. package/src/tools/pigment.css +205 -0
  74. package/src/tools/transitions.css +14 -0
  75. package/src/type/font-position.css +18 -0
  76. package/src/type/index.css +1 -0
  77. package/src/variables/breakpoints.css +103 -0
  78. package/src/variables/font.css +88 -0
  79. package/src/variables/index.css +4 -0
  80. package/src/variables/radius.css +54 -0
  81. package/src/variables/variables.css +34 -0
  82. package/dist/UI/Codepen.css +0 -13
  83. package/dist/UI/Codepen.css.map +0 -1
  84. package/dist/UI/Tweet.css +0 -7
  85. package/dist/UI/Tweet.css.map +0 -1
  86. package/dist/UI/Youtube.css +0 -13
  87. package/dist/UI/Youtube.css.map +0 -1
  88. package/dist/styles.css.map +0 -1
  89. package/src/Base/_Base.scss +0 -57
  90. package/src/Base/_Focus.scss +0 -38
  91. package/src/Base/_Transition.scss +0 -8
  92. package/src/Base/_index.scss +0 -4
  93. package/src/Components/_Box.scss +0 -9
  94. package/src/Components/_BrowserFrame.scss +0 -89
  95. package/src/Components/_Figure.scss +0 -5
  96. package/src/Components/_List.scss +0 -19
  97. package/src/Components/_Scrollbars.scss +0 -40
  98. package/src/Components/_SimpleSVG.scss +0 -9
  99. package/src/Components/_index.scss +0 -12
  100. package/src/Effects/_Backdrop.scss +0 -4
  101. package/src/Effects/_Elevation.scss +0 -92
  102. package/src/Effects/_Glow.scss +0 -51
  103. package/src/Effects/_Gradients.scss +0 -88
  104. package/src/Effects/_Shadows.scss +0 -51
  105. package/src/Effects/_SpecialShadows.scss +0 -45
  106. package/src/Effects/_Text-Outline.scss +0 -25
  107. package/src/Effects/_index.scss +0 -12
  108. package/src/Experimental/_SimplePricingPlan.scss +0 -141
  109. package/src/Forms/_Button.scss +0 -106
  110. package/src/Forms/_Combobox.scss +0 -49
  111. package/src/Forms/_FormBase.scss +0 -43
  112. package/src/Forms/_FormControls.scss +0 -95
  113. package/src/Forms/_Range.scss +0 -101
  114. package/src/Forms/_Select.scss +0 -114
  115. package/src/Forms/_Switch.scss +0 -66
  116. package/src/Forms/_TextField.scss +0 -116
  117. package/src/Forms/_Textarea.scss +0 -41
  118. package/src/Forms/_index.scss +0 -10
  119. package/src/Typography/_WritingMode.scss +0 -33
  120. package/src/Typography/_index.scss +0 -1
  121. package/src/UI/Codepen.scss +0 -11
  122. package/src/UI/Tweet.scss +0 -5
  123. package/src/UI/Youtube.scss +0 -13
  124. package/src/UI/_Breadcrumbs.scss +0 -24
  125. package/src/UI/_CQChecker.scss +0 -16
  126. package/src/UI/_Callout.scss +0 -31
  127. package/src/UI/_Drawer.scss +0 -28
  128. package/src/UI/_Dropdown.scss +0 -14
  129. package/src/UI/_FancyList.scss +0 -30
  130. package/src/UI/_PerspectiveHover.scss +0 -9
  131. package/src/UI/_Popover.scss +0 -25
  132. package/src/UI/_Resizer.scss +0 -43
  133. package/src/UI/_Spotlight.scss +0 -42
  134. package/src/UI/_Status.scss +0 -33
  135. package/src/UI/_Tabs.scss +0 -112
  136. package/src/UI/_Textwall.scss +0 -22
  137. package/src/UI/_index.scss +0 -17
  138. package/src/Utilities/_Shapes.scss +0 -20
  139. package/src/Utilities/_index.scss +0 -1
  140. package/src/Variables/_Globals.scss +0 -33
  141. package/src/Variables/_index.scss +0 -1
  142. package/src/_Animations.scss +0 -18
  143. package/src/_Fill.scss +0 -314
  144. package/src/styles.scss +0 -12
  145. package/src/utils/_index.scss +0 -3
  146. package/src/utils/functions/_fns.scss +0 -77
  147. package/src/utils/functions/_fonts.scss +0 -114
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@splendidlabz/styles",
3
- "version": "2.3.2",
3
+ "version": "3.0.0",
4
4
  "description": "",
5
5
  "author": "Zell Liew <zellwk@gmail.com>",
6
6
  "files": [
@@ -8,17 +8,31 @@
8
8
  "dist"
9
9
  ],
10
10
  "exports": {
11
- ".": "./src/styles.scss",
12
- "./*": "./src/*.scss",
13
- "./css": "./dist/styles.css",
14
- "./css/base": "./dist/Base/index.css",
15
- "./css/*": "./dist/*.css"
11
+ ".": "./src/styles.css",
12
+ "./components": "./src/components/index.css",
13
+ "./addons": "./src/addons/index.css",
14
+ "./no-tw": "./dist/no-tw/styles.css",
15
+ "./no-tw/*": "./dist/no-tw/*.css",
16
+ "./*": "./src/*.css",
17
+ "./scripts": "./src/scripts/index.js",
18
+ "./scripts/*": "./src/scripts/*.js"
16
19
  },
17
20
  "scripts": {
18
- "build": "sass src:dist",
19
- "lint": "stylelint '**/*.{css,scss}' --fix"
21
+ "lint": "stylelint '**/*.{css,scss}' --fix",
22
+ "dev": "turbowatch ./turbowatch.ts ",
23
+ "lightning": "lightningcss --bundle --targets \">= 0.25%\" ./src/styles.css -o dist/styles.css",
24
+ "build-styles": "npx @tailwindcss/cli -i ./no-tailwind/index.css -o ./dist/no-tw/styles.css",
25
+ "build-layouts": "npx @tailwindcss/cli -i ./no-tailwind/layouts.css -o ./dist/no-tw/layouts.css",
26
+ "build": "npm run build-styles & npm run build-layouts"
27
+ },
28
+ "dependencies": {
29
+ "@splendidlabz/utils": "*"
20
30
  },
21
31
  "devDependencies": {
22
- "@splendidlabz/stylelint-config": "*"
32
+ "@splendidlabz/stylelint-config": "3.0.0",
33
+ "@tailwindcss/cli": "^4.0.9",
34
+ "lightningcss-cli": "^1.29.1",
35
+ "tailwindcss": "^4.0.9",
36
+ "turbowatch": "^2.29.4"
23
37
  }
24
38
  }
@@ -0,0 +1 @@
1
+ @import './scrollbars.css';
@@ -0,0 +1,60 @@
1
+ /*********************
2
+ * Custom Scrollbars *
3
+ *********************/
4
+ @theme {
5
+ --scrollbar-width: auto;
6
+ --scrollbar-size: 14px;
7
+ --scroll-behavior: smooth;
8
+ }
9
+
10
+ @layer base {
11
+ :root {
12
+ @media (prefers-color-scheme: light) {
13
+ --scrollbar-thumb-color: #c1c1c1;
14
+ --scrollbar-track-color: #fafafa;
15
+ }
16
+
17
+ @media (prefers-color-scheme: dark) {
18
+ --scrollbar-thumb-color: #6b6b6b;
19
+ --scrollbar-track-color: #2d2d2d;
20
+ }
21
+ }
22
+
23
+ * {
24
+ scroll-behavior: var(--scroll-behavior);
25
+ scrollbar-width: var(--scrollbar-width);
26
+ scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-track-color);
27
+
28
+ /* Works on Chrome, Edge, and Safari */
29
+ &::-webkit-scrollbar {
30
+ width: var(--scrollbar-size);
31
+ height: var(--scrollbar-size);
32
+ }
33
+
34
+ &::-webkit-scrollbar-track {
35
+ background: var(--scrollbar-track-color);
36
+ }
37
+
38
+ &::-webkit-scrollbar-thumb {
39
+ border: var(--scrollbar-thumb-radius, 3px) solid
40
+ var(--scrollbar-track-color);
41
+ border-radius: 100px;
42
+ background: var(--scrollbar-thumb-color);
43
+ }
44
+ }
45
+ }
46
+
47
+ @utility scrollbar-auto {
48
+ --scrollbar-width: auto;
49
+ --scrollbar-size: 12px;
50
+ }
51
+
52
+ @utility scrollbar-thin {
53
+ --scrollbar-width: thin;
54
+ --scrollbar-size: 12px;
55
+ }
56
+
57
+ @utility scrollbar-none {
58
+ --scrollbar-width: none;
59
+ --scrollbar-size: 0;
60
+ }
@@ -1,5 +1,5 @@
1
- @layer components {
2
- .Accordion {
1
+ @layer utilities {
2
+ .accordion {
3
3
  svg {
4
4
  transition: var(--transition-values);
5
5
  transition-property: var(--transition-props);
@@ -10,24 +10,22 @@
10
10
  }
11
11
  }
12
12
 
13
- .AccordionBtn {
13
+ .accordion-button {
14
+ @apply padding-scaffold;
14
15
  display: flex;
15
16
  justify-content: space-between;
16
17
  align-items: center;
17
- gap: 0.5em;
18
18
  width: 100%;
19
- padding: 0.75rem;
20
- border: 0;
21
- text-align: left;
19
+ max-width: 100%;
22
20
 
23
- // astro-slot signifies the title, except it's a slot
21
+ /* astro-slot contains the title */
24
22
  &:where(:has(svg + span)),
25
23
  &:where(:has(svg + astro-slot)) {
26
24
  justify-content: start;
27
25
  }
28
26
  }
29
27
 
30
- .AccordionContent {
31
- padding: 0.75rem;
28
+ .accordion-content {
29
+ @apply padding-scaffold;
32
30
  }
33
31
  }
@@ -0,0 +1,20 @@
1
+ @layer utilities {
2
+ .drawer-backdrop {
3
+ position: fixed;
4
+ inset: 0;
5
+ z-index: 15;
6
+ background-color: oklch(0% 0 0deg / 50%);
7
+ }
8
+
9
+ /* // Note to self: */
10
+ /* // Need to create another Class to contain default z-index for Absolute Drawers — so this doesn't show above it. */
11
+ .drawer-content {
12
+ position: fixed;
13
+ overflow-y: auto;
14
+ z-index: 100;
15
+ }
16
+
17
+ .drawer-close-button {
18
+ @apply button-icon;
19
+ }
20
+ }
@@ -0,0 +1,2 @@
1
+ @import './drawer.css';
2
+ @import './accordion.css';
@@ -0,0 +1,290 @@
1
+ /* https://www.joshwcomeau.com/css/designing-shadows/ */
2
+ :root {
3
+ --shadow-x: 0px;
4
+ --shadow-y: 1px;
5
+ --shadow-blur: 1px;
6
+ --shadow-color: rgb(0 0 0);
7
+ --shadow-alpha: 0.25;
8
+ --shadow-x-multiple: 2;
9
+ --shadow-y-multiple: 2;
10
+ --shadow-blur-multiple: 2;
11
+ }
12
+
13
+ @utility elevation {
14
+ & {
15
+ --sx: var(--shadow-x);
16
+ --sy: var(--shadow-y);
17
+ --sb: var(--shadow-blur);
18
+ --sc: var(--shadow-color);
19
+ --sa: var(--shadow-alpha);
20
+ --sx-multiple: var(--shadow-x-multiple);
21
+ --sy-multiple: var(--shadow-y-multiple);
22
+ --sb-multiple: var(--shadow-blur-multiple);
23
+ }
24
+ }
25
+
26
+ @utility elevation-1 {
27
+ & {
28
+ @apply elevation;
29
+ box-shadow: var(--sx) var(--sy) var(--sb)
30
+ oklch(from var(--sc) l c h / var(--sa));
31
+ }
32
+ }
33
+
34
+ @utility elevation-2 {
35
+ & {
36
+ @apply elevation;
37
+ box-shadow:
38
+ var(--sx) var(--sy) var(--sb) oklch(from var(--sc) l c h / var(--sa)),
39
+ calc(var(--sx) * pow(var(--sx-multiple), 1))
40
+ calc(var(--sy) * pow(var(--sy-multiple), 1))
41
+ calc(var(--sb) * pow(var(--sb-multiple), 1))
42
+ oklch(from var(--sc) l c h / var(--sa));
43
+ }
44
+ }
45
+
46
+ @utility elevation-3 {
47
+ & {
48
+ @apply elevation;
49
+ box-shadow:
50
+ var(--sx) var(--sy) var(--sb) oklch(from var(--sc) l c h / var(--sa)),
51
+ calc(var(--sx) * pow(var(--sx-multiple), 1))
52
+ calc(var(--sy) * pow(var(--sy-multiple), 1))
53
+ calc(var(--sb) * pow(var(--sb-multiple), 1))
54
+ oklch(from var(--sc) l c h / var(--sa)),
55
+ calc(var(--sx) * pow(var(--sx-multiple), 2))
56
+ calc(var(--sy) * pow(var(--sy-multiple), 2))
57
+ calc(var(--sb) * pow(var(--sb-multiple), 2))
58
+ oklch(from var(--sc) l c h / var(--sa));
59
+ }
60
+ }
61
+
62
+ @utility elevation-4 {
63
+ & {
64
+ @apply elevation;
65
+ box-shadow:
66
+ var(--sx) var(--sy) var(--sb) oklch(from var(--sc) l c h / var(--sa)),
67
+ calc(var(--sx) * pow(var(--sx-multiple), 1))
68
+ calc(var(--sy) * pow(var(--sy-multiple), 1))
69
+ calc(var(--sb) * pow(var(--sb-multiple), 1))
70
+ oklch(from var(--sc) l c h / var(--sa)),
71
+ calc(var(--sx) * pow(var(--sx-multiple), 2))
72
+ calc(var(--sy) * pow(var(--sy-multiple), 2))
73
+ calc(var(--sb) * pow(var(--sb-multiple), 2))
74
+ oklch(from var(--sc) l c h / var(--sa)),
75
+ calc(var(--sx) * pow(var(--sx-multiple), 3))
76
+ calc(var(--sy) * pow(var(--sy-multiple), 3))
77
+ calc(var(--sb) * pow(var(--sb-multiple), 3))
78
+ oklch(from var(--sc) l c h / var(--sa));
79
+ }
80
+ }
81
+
82
+ @utility elevation-5 {
83
+ & {
84
+ @apply elevation;
85
+ box-shadow:
86
+ var(--sx) var(--sy) var(--sb) oklch(from var(--sc) l c h / var(--sa)),
87
+ calc(var(--sx) * pow(var(--sx-multiple), 1))
88
+ calc(var(--sy) * pow(var(--sy-multiple), 1))
89
+ calc(var(--sb) * pow(var(--sb-multiple), 1))
90
+ oklch(from var(--sc) l c h / var(--sa)),
91
+ calc(var(--sx) * pow(var(--sx-multiple), 2))
92
+ calc(var(--sy) * pow(var(--sy-multiple), 2))
93
+ calc(var(--sb) * pow(var(--sb-multiple), 2))
94
+ oklch(from var(--sc) l c h / var(--sa)),
95
+ calc(var(--sx) * pow(var(--sx-multiple), 3))
96
+ calc(var(--sy) * pow(var(--sy-multiple), 3))
97
+ calc(var(--sb) * pow(var(--sb-multiple), 3))
98
+ oklch(from var(--sc) l c h / var(--sa)),
99
+ calc(var(--sx) * pow(var(--sx-multiple), 4))
100
+ calc(var(--sy) * pow(var(--sy-multiple), 4))
101
+ calc(var(--sb) * pow(var(--sb-multiple), 4))
102
+ oklch(from var(--sc) l c h / var(--sa));
103
+ }
104
+ }
105
+
106
+ @utility elevation-6 {
107
+ & {
108
+ @apply elevation;
109
+ box-shadow:
110
+ var(--sx) var(--sy) var(--sb) oklch(from var(--sc) l c h / var(--sa)),
111
+ calc(var(--sx) * pow(var(--sx-multiple), 1))
112
+ calc(var(--sy) * pow(var(--sy-multiple), 1))
113
+ calc(var(--sb) * pow(var(--sb-multiple), 1))
114
+ oklch(from var(--sc) l c h / var(--sa)),
115
+ calc(var(--sx) * pow(var(--sx-multiple), 2))
116
+ calc(var(--sy) * pow(var(--sy-multiple), 2))
117
+ calc(var(--sb) * pow(var(--sb-multiple), 2))
118
+ oklch(from var(--sc) l c h / var(--sa)),
119
+ calc(var(--sx) * pow(var(--sx-multiple), 3))
120
+ calc(var(--sy) * pow(var(--sy-multiple), 3))
121
+ calc(var(--sb) * pow(var(--sb-multiple), 3))
122
+ oklch(from var(--sc) l c h / var(--sa)),
123
+ calc(var(--sx) * pow(var(--sx-multiple), 4))
124
+ calc(var(--sy) * pow(var(--sy-multiple), 4))
125
+ calc(var(--sb) * pow(var(--sb-multiple), 4))
126
+ oklch(from var(--sc) l c h / var(--sa)),
127
+ calc(var(--sx) * pow(var(--sx-multiple), 5))
128
+ calc(var(--sy) * pow(var(--sy-multiple), 5))
129
+ calc(var(--sb) * pow(var(--sb-multiple), 5))
130
+ oklch(from var(--sc) l c h / var(--sa));
131
+ }
132
+ }
133
+
134
+ /*********************
135
+ * Elevation with Drop Shadow *
136
+ *********************/
137
+ @utility ds-elevation {
138
+ --sx: var(--drop-shadow-x, var(--shadow-x));
139
+ --sy: var(--drop-shadow-y, var(--shadow-y));
140
+ --sb: var(--drop-shadow-blur, var(--shadow-blur));
141
+ --sc: var(--drop-shadow-color, var(--shadow-color));
142
+ --sa: var(--drop-shadow-alpha, var(--shadow-alpha));
143
+ --sx-multiple: var(--drop-shadow-x-multiple, var(--shadow-x-multiple));
144
+ --sy-multiple: var(--drop-shadow-y-multiple, var(--shadow-y-multiple));
145
+ --sb-multiple: var(--drop-shadow-blur-multiple, var(--shadow-blur-multiple));
146
+ }
147
+
148
+ @utility ds-elevation-1 {
149
+ & {
150
+ @apply ds-elevation;
151
+ filter: drop-shadow(
152
+ var(--sx) var(--sy) var(--sb) oklch(from var(--sc) l c h / var(--sa))
153
+ );
154
+ }
155
+ }
156
+
157
+ @utility ds-elevation-2 {
158
+ & {
159
+ @apply ds-elevation;
160
+ filter: drop-shadow(
161
+ var(--sx) var(--sy) var(--sb) oklch(from var(--sc) l c h / var(--sa))
162
+ )
163
+ drop-shadow(
164
+ calc(var(--sx) * pow(var(--sx-multiple), 1))
165
+ calc(var(--sy) * pow(var(--sy-multiple), 1))
166
+ calc(var(--sb) * pow(var(--sb-multiple), 1))
167
+ oklch(from var(--sc) l c h / var(--sa))
168
+ );
169
+ }
170
+ }
171
+
172
+ @utility ds-elevation-3 {
173
+ & {
174
+ @apply ds-elevation;
175
+ filter: drop-shadow(
176
+ var(--sx) var(--sy) var(--sb) oklch(from var(--sc) l c h / var(--sa))
177
+ )
178
+ drop-shadow(
179
+ calc(var(--sx) * pow(var(--sx-multiple), 1))
180
+ calc(var(--sy) * pow(var(--sy-multiple), 1))
181
+ calc(var(--sb) * pow(var(--sb-multiple), 1))
182
+ oklch(from var(--sc) l c h / var(--sa))
183
+ )
184
+ drop-shadow(
185
+ calc(var(--sx) * pow(var(--sx-multiple), 2))
186
+ calc(var(--sy) * pow(var(--sy-multiple), 2))
187
+ calc(var(--sb) * pow(var(--sb-multiple), 2))
188
+ oklch(from var(--sc) l c h / var(--sa))
189
+ );
190
+ }
191
+ }
192
+
193
+ @utility ds-elevation-4 {
194
+ & {
195
+ @apply ds-elevation;
196
+ filter: drop-shadow(
197
+ var(--sx) var(--sy) var(--sb) oklch(from var(--sc) l c h / var(--sa))
198
+ )
199
+ drop-shadow(
200
+ calc(var(--sx) * pow(var(--sx-multiple), 1))
201
+ calc(var(--sy) * pow(var(--sy-multiple), 1))
202
+ calc(var(--sb) * pow(var(--sb-multiple), 1))
203
+ oklch(from var(--sc) l c h / var(--sa))
204
+ )
205
+ drop-shadow(
206
+ calc(var(--sx) * pow(var(--sx-multiple), 2))
207
+ calc(var(--sy) * pow(var(--sy-multiple), 2))
208
+ calc(var(--sb) * pow(var(--sb-multiple), 2))
209
+ oklch(from var(--sc) l c h / var(--sa))
210
+ )
211
+ drop-shadow(
212
+ calc(var(--sx) * pow(var(--sx-multiple), 3))
213
+ calc(var(--sy) * pow(var(--sy-multiple), 3))
214
+ calc(var(--sb) * pow(var(--sb-multiple), 3))
215
+ oklch(from var(--sc) l c h / var(--sa))
216
+ );
217
+ }
218
+ }
219
+
220
+ @utility ds-elevation-5 {
221
+ & {
222
+ @apply ds-elevation;
223
+ filter: drop-shadow(
224
+ var(--sx) var(--sy) var(--sb) oklch(from var(--sc) l c h / var(--sa))
225
+ )
226
+ drop-shadow(
227
+ calc(var(--sx) * pow(var(--sx-multiple), 1))
228
+ calc(var(--sy) * pow(var(--sy-multiple), 1))
229
+ calc(var(--sb) * pow(var(--sb-multiple), 1))
230
+ oklch(from var(--sc) l c h / var(--sa))
231
+ )
232
+ drop-shadow(
233
+ calc(var(--sx) * pow(var(--sx-multiple), 2))
234
+ calc(var(--sy) * pow(var(--sy-multiple), 2))
235
+ calc(var(--sb) * pow(var(--sb-multiple), 2))
236
+ oklch(from var(--sc) l c h / var(--sa))
237
+ )
238
+ drop-shadow(
239
+ calc(var(--sx) * pow(var(--sx-multiple), 3))
240
+ calc(var(--sy) * pow(var(--sy-multiple), 3))
241
+ calc(var(--sb) * pow(var(--sb-multiple), 3))
242
+ oklch(from var(--sc) l c h / var(--sa))
243
+ )
244
+ drop-shadow(
245
+ calc(var(--sx) * pow(var(--sx-multiple), 4))
246
+ calc(var(--sy) * pow(var(--sy-multiple), 4))
247
+ calc(var(--sb) * pow(var(--sb-multiple), 4))
248
+ oklch(from var(--sc) l c h / var(--sa))
249
+ );
250
+ }
251
+ }
252
+
253
+ @utility ds-elevation-6 {
254
+ & {
255
+ @apply ds-elevation;
256
+ filter: drop-shadow(
257
+ var(--sx) var(--sy) var(--sb) oklch(from var(--sc) l c h / var(--sa))
258
+ )
259
+ drop-shadow(
260
+ calc(var(--sx) * pow(var(--sx-multiple), 1))
261
+ calc(var(--sy) * pow(var(--sy-multiple), 1))
262
+ calc(var(--sb) * pow(var(--sb-multiple), 1))
263
+ oklch(from var(--sc) l c h / var(--sa))
264
+ )
265
+ drop-shadow(
266
+ calc(var(--sx) * pow(var(--sx-multiple), 2))
267
+ calc(var(--sy) * pow(var(--sy-multiple), 2))
268
+ calc(var(--sb) * pow(var(--sb-multiple), 2))
269
+ oklch(from var(--sc) l c h / var(--sa))
270
+ )
271
+ drop-shadow(
272
+ calc(var(--sx) * pow(var(--sx-multiple), 3))
273
+ calc(var(--sy) * pow(var(--sy-multiple), 3))
274
+ calc(var(--sb) * pow(var(--sb-multiple), 3))
275
+ oklch(from var(--sc) l c h / var(--sa))
276
+ )
277
+ drop-shadow(
278
+ calc(var(--sx) * pow(var(--sx-multiple), 4))
279
+ calc(var(--sy) * pow(var(--sy-multiple), 4))
280
+ calc(var(--sb) * pow(var(--sb-multiple), 4))
281
+ oklch(from var(--sc) l c h / var(--sa))
282
+ )
283
+ drop-shadow(
284
+ calc(var(--sx) * pow(var(--sx-multiple), 5))
285
+ calc(var(--sy) * pow(var(--sy-multiple), 5))
286
+ calc(var(--sb) * pow(var(--sb-multiple), 5))
287
+ oklch(from var(--sc) l c h / var(--sa))
288
+ );
289
+ }
290
+ }
@@ -0,0 +1,42 @@
1
+ /* @theme {
2
+ --refraction: 5rem;
3
+ } */
4
+
5
+ @utility frosted-glass {
6
+ & {
7
+ position: relative;
8
+ backdrop-filter: blur(16px);
9
+ border: inherit;
10
+ }
11
+ }
12
+
13
+ /* Use this as a sibling element in stack */
14
+ @utility frosted-glass-advanced {
15
+ & {
16
+ pointer-events: none;
17
+ margin: calc(var(--refraction) * -1);
18
+ padding: var(--refraction);
19
+
20
+ /* Using position absolute is another way */
21
+ /* position: absolute; */
22
+ /* inset: calc(var(--refraction) * -1); */ /* z-index: -1; */
23
+ /* width: calc(100% + var(--refraction) * 2); */
24
+ /* height: calc(100% + var(--refraction) * 2); */
25
+ border-radius: inherit;
26
+ backdrop-filter: blur(16px);
27
+ mask-image:
28
+ linear-gradient(
29
+ to bottom,
30
+ transparent 0% var(--refraction),
31
+ black var(--refraction) calc(100% - var(--refraction)),
32
+ transparent calc(100% - var(--refraction)) 100%
33
+ ),
34
+ linear-gradient(
35
+ to right,
36
+ transparent 0% var(--refraction),
37
+ black var(--refraction) calc(100% - var(--refraction)),
38
+ transparent calc(100% - var(--refraction)) 100%
39
+ );
40
+ mask-composite: intersect;
41
+ }
42
+ }
@@ -0,0 +1,107 @@
1
+ /* Gradient Defaults */
2
+ @layer base {
3
+ :root {
4
+ /* --gradient: ; */
5
+ --gradient-alpha: 1;
6
+ --gradient-angle: 90deg;
7
+ --gradient-position: center; /* For radial and conic gradients */
8
+ --gradient-shape: ; /* For radial and conic gradients */
9
+ --gradient-size: ; /* For radial gradient */
10
+ --color-space: oklab;
11
+ --hue-interpolation: ;
12
+ }
13
+ }
14
+
15
+ /* These don't work in Tailwind 4 and we need to adjust them */
16
+
17
+ @utility tw-gradient {
18
+ --tw-gradient:
19
+ var(--tw-gradient-from) var(--tw-gradient-from-position),
20
+ var(--tw-gradient-to) var(--tw-gradient-to-position);
21
+ }
22
+
23
+ @utility gradient {
24
+ & {
25
+ @apply tw-gradient;
26
+ background-image: linear-gradient(
27
+ var(--gradient-angle),
28
+ var(--gradient, var(--tw-gradient))
29
+ );
30
+
31
+ @supports (linear-gradient(in oklab)) {
32
+ background: linear-gradient(
33
+ var(--gradient-angle) in var(--color-space) var(--hue-interpolation),
34
+ var(--gradient, var(--tw-gradient))
35
+ );
36
+ }
37
+ }
38
+ }
39
+
40
+ @utility radial-gradient {
41
+ & {
42
+ @apply tw-gradient;
43
+ background-image: radial-gradient(
44
+ var(--gradient-shape) var(--gradient-size) at var(--gradient-position),
45
+ var(--tw-gradient-stops, var(--gradient))
46
+ );
47
+ }
48
+ }
49
+
50
+ @utility conic-gradient {
51
+ & {
52
+ @apply tw-gradient;
53
+ background-image: conic-gradient(
54
+ from var(--gradient-angle) at var(--gradient-position),
55
+ var(--tw-gradient-stops, var(--gradient))
56
+ );
57
+ }
58
+ }
59
+
60
+ @utility text-gradient {
61
+ & {
62
+ display: inline-flex;
63
+ -webkit-text-fill-color: transparent;
64
+ background-clip: text;
65
+
66
+ /* Allows multiline gradients in Safari */
67
+ box-decoration-break: clone;
68
+ }
69
+ }
70
+
71
+ /*********************
72
+ * Repeating Gradients *
73
+ * Needs more testing
74
+ *********************/
75
+ @utility repeating-gradient {
76
+ & {
77
+ background-image: repeating-linear-gradient(
78
+ var(--gradient-angle),
79
+ var(--tw-gradient-stops, var(--gradient))
80
+ );
81
+
82
+ @supports (linear-gradient(in oklab)) {
83
+ background-image: repeating-linear-gradient(
84
+ var(--gradient-angle) in var(--color-space) var(--hue-interpolation),
85
+ var(--tw-gradient-stops, var(--gradient))
86
+ );
87
+ }
88
+ }
89
+ }
90
+
91
+ @utility repeating-radial-gradient {
92
+ & {
93
+ background-image: repeating-radial-gradient(
94
+ var(--gradient-shape) var(--gradient-size) at var(--gradient-position),
95
+ var(--tw-gradient-stops, var(--gradient))
96
+ );
97
+ }
98
+ }
99
+
100
+ @utility repeating-conic-gradient {
101
+ & {
102
+ background-image: repeating-conic-gradient(
103
+ from var(--gradient-angle) at var(--gradient-position),
104
+ var(--tw-gradient-stops, var(--gradient))
105
+ );
106
+ }
107
+ }
@@ -0,0 +1,13 @@
1
+ /* .highlight-underline {
2
+ } */
3
+
4
+ @utility highlight-bg {
5
+ & {
6
+ /* line-height: 1; */
7
+ background-image: linear-gradient(
8
+ transparent 0 var(--highlight-start, 0),
9
+ var(--highlight-color) var(--highlight-start, 0) var(--highlight-end, 1em),
10
+ transparent var(--highlight-end, 1em)
11
+ );
12
+ }
13
+ }
@@ -0,0 +1,6 @@
1
+ @import './elevation.css';
2
+ @import './gradients.css';
3
+ @import './highlight.css';
4
+ @import './shadows.css';
5
+ @import './text-outline.css';
6
+ @import './frosted-glass.css';
@@ -0,0 +1,18 @@
1
+ /* From https://css-tip.com/inner-border/ */
2
+ /* Needs testing */
3
+ @utility inner-border {
4
+ & {
5
+ --offset: 20px; /* offset of the border */
6
+ --border-width: 5px; /* border thickness */
7
+ mask:
8
+ conic-gradient(#000 0 0) no-repeat 50% /
9
+ calc(100% - 2 * (var(--offset) + var(--border-width)))
10
+ calc(100% - 2 * (var(--offset) + var(--border-width))),
11
+ conic-gradient(
12
+ from 90deg at var(--offset) var(--offset),
13
+ #0000 25%,
14
+ #000 0
15
+ )
16
+ 0 0 / calc(100% - var(--offset)) calc(100% - var(--offset));
17
+ }
18
+ }