@obosbbl/grunnmuren-tailwind 2.4.2 → 2.4.4

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 (2) hide show
  1. package/package.json +2 -2
  2. package/tailwind-base.css +61 -58
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@obosbbl/grunnmuren-tailwind",
3
- "version": "2.4.2",
3
+ "version": "2.4.4",
4
4
  "description": "Grunnmuren Tailwind preset",
5
5
  "repository": {
6
6
  "url": "https://github.com/code-obos/grunnmuren"
@@ -16,7 +16,7 @@
16
16
  "font.css"
17
17
  ],
18
18
  "devDependencies": {
19
- "tailwindcss": "4.1.17"
19
+ "tailwindcss": "4.1.18"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "tailwindcss": "^4.0.0"
package/tailwind-base.css CHANGED
@@ -223,6 +223,10 @@
223
223
  @apply text-[0.875rem]/[1.375rem] lg:text-[0.875rem]/[1.4375rem];
224
224
  }
225
225
 
226
+ @utility footnote {
227
+ @apply text-[0.75rem]/[1.3125rem];
228
+ }
229
+
226
230
  /* Focus styles */
227
231
  @utility outline-focus {
228
232
  @apply outline-2 outline-black;
@@ -258,34 +262,9 @@
258
262
 
259
263
  @layer components {
260
264
  /*** Link List component styles ***/
261
- .link-list-container {
262
- @apply @container;
263
-
264
- &:has([data-slot="heading"]) {
265
- .link-list,
266
- [data-slot="link-list"] {
267
- @apply overflow-visible;
268
- }
269
- }
270
-
271
- [data-slot="heading"] {
272
- @apply p-1.25;
273
-
274
- [data-slot="link"] {
275
- @apply py-2.25;
276
- & > svg {
277
- @apply text-base;
278
- }
279
- }
280
-
281
- &:not(:has([data-slot="link"])) {
282
- @apply my-2.25;
283
- }
284
- }
285
-
265
+ [data-layout="grid"] {
286
266
  [data-slot="link-list"] {
287
267
  @apply @sm:gap-x-4 @md:gap-x-9 @lg:gap-x-12 @xl:gap-x-16;
288
-
289
268
  &:has([data-slot="link-list-item"]:nth-child(6)):not(
290
269
  :has([data-slot="link-list-item"]:nth-child(9):last-child)
291
270
  ):not(:has([data-slot="link-list-item"]:nth-child(11))) {
@@ -298,42 +277,66 @@
298
277
  }
299
278
  }
300
279
 
301
- .link-list,
302
- [data-slot="link-list"] {
303
- /**
304
- * Hides dividers at the top of the list (overflow-y)
305
- * while preventing arrow icons from overflowing container when animated to the right (overflow-x)
306
- */
307
- @apply min-w-fit overflow-hidden grid auto-rows-max gap-y-px;
280
+ /*** Stepper component styles ***/
281
+ .stepper-container,
282
+ [data-slot="stepper-container"] {
283
+ @apply relative max-lg:overflow-hidden;
284
+ /** Make room for the focus outline */
285
+ @apply max-lg:px-1;
308
286
  }
309
287
 
310
- .link-list-item,
311
- [data-slot="link-list-item"] {
312
- /** Creates divider lines that works in any grid layout and with the focus ring */
313
- @apply after:-top-px relative p-1.25 after:absolute after:right-0 after:left-0 after:h-px after:w-full after:bg-gray-light;
314
- [data-slot="link"] {
315
- @apply paragraph;
316
- }
317
- }
288
+ .stepper,
289
+ [data-slot="stepper"] {
290
+ counter-reset: step-counter;
291
+ @apply flex gap-x-2 lg:flex-col lg:gap-y-14;
318
292
 
319
- .link-list-container,
320
- .link-list-item,
321
- [data-slot="link-list-item"] {
322
- [data-slot="link"] {
323
- @apply flex w-full cursor-pointer justify-between gap-x-2 py-3.5 font-medium no-underline focus-visible:outline-focus;
324
- }
325
- }
293
+ [data-slot="step"] {
294
+ counter-increment: step-counter;
295
+ @apply flex items-center gap-x-2 relative max-lg:my-1.5;
326
296
 
327
- .link-list-container [data-slot="link"],
328
- [data-slot="link-list-item"] [data-slot="link"] {
329
- &:hover:not([download]):not([rel~="external"]) svg {
330
- @apply motion-safe:translate-x-1;
331
- }
332
- &[download]:hover svg {
333
- @apply motion-safe:translate-y-1;
334
- }
335
- &[rel~="external"]:hover svg {
336
- @apply motion-safe:-translate-y-0.5 motion-safe:translate-x-0.5;
297
+ &::before {
298
+ content: counter(step-counter);
299
+ @apply shrink-0 font-semibold size-8 border-2 rounded-full border-blue-dark grid place-content-center;
300
+ }
301
+
302
+ /** Place the focus styles on the ::before element instead of the link, since the link text is not visible on smaller screens */
303
+ &:has([data-slot="link"]:focus-visible) {
304
+ &::before {
305
+ @apply outline-focus-offset;
306
+ }
307
+ }
308
+
309
+ [data-slot="link"] {
310
+ @apply max-lg:absolute max-lg:opacity-0 max-lg:max-w-11 max-lg:overflow-x-hidden;
311
+ @apply focus-visible:outline-none;
312
+ /** Create a 44x44 px clickable area, where the step number next to each link will also be covered **/
313
+ @apply py-2.5 lg:pl-11 lg:-ml-11 -my-2.5;
314
+ }
315
+
316
+ &::before {
317
+ @apply bg-white text-blue-dark;
318
+ }
319
+
320
+ &[data-state="completed"] {
321
+ &::before {
322
+ @apply bg-blue-dark text-white;
323
+ }
324
+ }
325
+
326
+ /* order matters here, as data-current selector needs to come after completed state selector */
327
+ &[data-current="true"] {
328
+ &::before {
329
+ @apply bg-sky-light border-4 text-blue-dark;
330
+ }
331
+ }
332
+
333
+ svg {
334
+ @apply text-white absolute border-2 border-white bg-blue-dark rounded-full left-4.5 -top-1.5 size-5;
335
+ }
336
+
337
+ [data-slot="progress-bar"] {
338
+ @apply w-4 max-lg:grow lg:w-14 lg:rotate-90 lg:absolute lg:-left-3 lg:px-1.5 lg:-bottom-[calc(100%-2px)];
339
+ }
337
340
  }
338
341
  }
339
342
  }