twntyx-css 1.0.5 → 1.0.7

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.
@@ -1,39 +1,31 @@
1
1
  {
2
- "id": "card-assessment",
3
- "name": "Investor fit card",
2
+ "id": "card-draggable",
3
+ "name": "Draggable card",
4
4
  "status": "preview",
5
- "summary": "A versatile card component for displaying investor-fit insights, outreach criteria, and funding-readiness signals.",
5
+ "summary": "A versatile draggablecard component for displaying various items.",
6
6
  "keywords": [
7
7
  "card",
8
- "card assessment",
9
- "card-assessment",
10
- "criteria",
11
- "evaluation",
12
- "feedback",
13
- "fundraising",
14
- "investor",
15
- "investor fit",
16
- "outreach",
17
- "pipeline",
18
- "pitch call",
19
- "profile",
20
- "progress",
21
- "readiness",
22
- "results",
23
- "review"
8
+ "card draggable",
9
+ "card-draggable",
10
+ "drag and drop",
11
+ "draggable",
12
+ "items",
13
+ "list",
14
+ "reorderable",
15
+ "sortable"
24
16
  ],
25
17
  "sourcePaths": [
26
- "app/design-system/card-assessment/page.js"
18
+ "app/design-system/card-draggable/page.js"
27
19
  ],
28
20
  "apiModel": "html-class",
29
- "baseClass": "card-assessment",
21
+ "baseClass": "card-draggable",
30
22
  "variants": [],
31
23
  "sizes": [],
32
24
  "states": [],
33
25
  "structure": {
34
26
  "rootElement": "div",
35
27
  "requiredClasses": [
36
- "card-assessment"
28
+ "card-draggable"
37
29
  ],
38
30
  "optionalClasses": [],
39
31
  "requiredChildren": [],
@@ -64,7 +56,7 @@
64
56
  "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
65
57
  },
66
58
  "dos": [
67
- "Apply the base class 'card-assessment' on the root element.",
59
+ "Apply the base class 'card-draggable' on the root element.",
68
60
  "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
69
61
  "Keep semantic color usage aligned with token classes for light/dark support."
70
62
  ],
@@ -77,8 +69,8 @@
77
69
  "examples": [
78
70
  {
79
71
  "id": "canonical",
80
- "file": "examples/card-assessment.html",
81
- "description": "Minimal canonical Investor fit card usage."
72
+ "file": "examples/card-draggable.html",
73
+ "description": "Minimal canonical Draggable card usage."
82
74
  }
83
75
  ],
84
76
  "composition": {
@@ -2,7 +2,7 @@
2
2
  "id": "illustrations-library",
3
3
  "name": "Illustrations library",
4
4
  "status": "stable",
5
- "summary": "Browse our collection of custom illustrations and visual elements used to enhance the user experience and reinforce our brand identity across the application. The source assets located in [Figma](https://www.figma.com/design/1zI7ewgpqCGoxrPpiu6w2R/Product-illustrations?m=auto&t=LU9WIUq52kD6qdO8-1) *(Marketing / Assets)*, which can also be downloaded as a [.fig file](/figma/Product_illustrations.fig).",
5
+ "summary": "Browse our collection of custom illustrations and visual elements used to enhance the user experience and reinforce our brand identity across the application.",
6
6
  "keywords": [
7
7
  "artwork",
8
8
  "assets",
@@ -0,0 +1,82 @@
1
+ {
2
+ "id": "template-onboarding",
3
+ "name": "Onboarding",
4
+ "status": "preview",
5
+ "summary": "A template for an onboarding process.",
6
+ "keywords": [
7
+ "getting started",
8
+ "guide",
9
+ "help",
10
+ "introduction",
11
+ "onboarding",
12
+ "support",
13
+ "template onboarding",
14
+ "template-onboarding",
15
+ "tutorial",
16
+ "welcome"
17
+ ],
18
+ "sourcePaths": [
19
+ "app/design-system/template-onboarding/page.js"
20
+ ],
21
+ "apiModel": "html-class",
22
+ "baseClass": "template-onboarding",
23
+ "variants": [],
24
+ "sizes": [],
25
+ "states": [],
26
+ "structure": {
27
+ "rootElement": "div",
28
+ "requiredClasses": [
29
+ "template-onboarding"
30
+ ],
31
+ "optionalClasses": [],
32
+ "requiredChildren": [],
33
+ "optionalChildren": []
34
+ },
35
+ "attributes": {
36
+ "allowed": [
37
+ "class"
38
+ ],
39
+ "required": [],
40
+ "dataAttributes": [],
41
+ "roles": [],
42
+ "aria": [
43
+ "aria-label"
44
+ ]
45
+ },
46
+ "a11y": {
47
+ "interactive": false,
48
+ "requiredRoles": [],
49
+ "requiredAria": [
50
+ "aria-label"
51
+ ],
52
+ "keyboardSupport": [],
53
+ "focusBehavior": "No keyboard interaction is required unless nested interactive children are introduced."
54
+ },
55
+ "dos": [
56
+ "Apply the base class 'template-onboarding' on the root element.",
57
+ "Use documented modifiers for visual variants instead of ad-hoc custom classes.",
58
+ "Keep semantic color usage aligned with token classes for light/dark support."
59
+ ],
60
+ "donts": [
61
+ "Do not combine conflicting state classes on the same element.",
62
+ "Do not rely on undocumented internal classes in production templates.",
63
+ "Do not remove required accessibility attributes when component is interactive."
64
+ ],
65
+ "tokenUsage": [],
66
+ "examples": [
67
+ {
68
+ "id": "canonical",
69
+ "file": "examples/template-onboarding.html",
70
+ "description": "Minimal canonical Onboarding usage."
71
+ }
72
+ ],
73
+ "composition": {
74
+ "patterns": [],
75
+ "relatedComponents": [],
76
+ "notes": []
77
+ },
78
+ "breakingChangePolicy": {
79
+ "classContract": "Base class, documented modifiers, and state class names are semver-protected for consumer markup.",
80
+ "a11yContract": "Documented role and aria requirements are semver-protected for generated markup."
81
+ }
82
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "id": "template-stats",
3
- "name": "Stats template",
3
+ "name": "Stats",
4
4
  "status": "preview",
5
5
  "summary": "Tailwind-first stats template for composing metric cards directly in markup without component-specific classes.",
6
6
  "keywords": [
@@ -61,7 +61,7 @@
61
61
  {
62
62
  "id": "canonical",
63
63
  "file": "examples/template-stats.html",
64
- "description": "Minimal canonical Stats template usage."
64
+ "description": "Minimal canonical Stats usage."
65
65
  }
66
66
  ],
67
67
  "composition": {
@@ -0,0 +1 @@
1
+ <div class="card-draggable">Draggable card</div>
@@ -0,0 +1 @@
1
+ <div class="template-onboarding">Onboarding</div>
@@ -1 +1 @@
1
- <div class="template-stats">Stats template</div>
1
+ <div class="template-stats">Stats</div>
package/llm/index.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "llmSchemaVersion": "1.0.0",
3
- "designSystemVersion": "1.0.5",
3
+ "designSystemVersion": "1.0.7",
4
4
  "packageName": "twntyx-css",
5
5
  "apiModel": "html-class",
6
- "sourceFingerprint": "bd6f1d8c217682374a3d5519f14a8c18f182db2cea28a2eb3dd66148a1b33dfa",
6
+ "sourceFingerprint": "edc2ab201c2009b080557686438a6f36046b978edb2a8a34abd944be502d8401",
7
7
  "files": {
8
8
  "schema": "schema.json",
9
9
  "tokens": "tokens.json",
@@ -315,29 +315,21 @@
315
315
  ]
316
316
  },
317
317
  {
318
- "id": "card-assessment",
319
- "name": "Investor fit card",
320
- "file": "components/card-assessment.json",
318
+ "id": "card-draggable",
319
+ "name": "Draggable card",
320
+ "file": "components/card-draggable.json",
321
321
  "status": "preview",
322
- "summary": "A versatile card component for displaying investor-fit insights, outreach criteria, and funding-readiness signals.",
322
+ "summary": "A versatile draggablecard component for displaying various items.",
323
323
  "keywords": [
324
324
  "card",
325
- "card assessment",
326
- "card-assessment",
327
- "criteria",
328
- "evaluation",
329
- "feedback",
330
- "fundraising",
331
- "investor",
332
- "investor fit",
333
- "outreach",
334
- "pipeline",
335
- "pitch call",
336
- "profile",
337
- "progress",
338
- "readiness",
339
- "results",
340
- "review"
325
+ "card draggable",
326
+ "card-draggable",
327
+ "drag and drop",
328
+ "draggable",
329
+ "items",
330
+ "list",
331
+ "reorderable",
332
+ "sortable"
341
333
  ]
342
334
  },
343
335
  {
@@ -755,7 +747,7 @@
755
747
  "name": "Illustrations library",
756
748
  "file": "components/illustrations-library.json",
757
749
  "status": "stable",
758
- "summary": "Browse our collection of custom illustrations and visual elements used to enhance the user experience and reinforce our brand identity across the application. The source assets located in [Figma](https://www.figma.com/design/1zI7ewgpqCGoxrPpiu6w2R/Product-illustrations?m=auto&t=LU9WIUq52kD6qdO8-1) *(Marketing / Assets)*, which can also be downloaded as a [.fig file](/figma/Product_illustrations.fig).",
750
+ "summary": "Browse our collection of custom illustrations and visual elements used to enhance the user experience and reinforce our brand identity across the application.",
759
751
  "keywords": [
760
752
  "artwork",
761
753
  "assets",
@@ -1472,9 +1464,28 @@
1472
1464
  "top bar"
1473
1465
  ]
1474
1466
  },
1467
+ {
1468
+ "id": "template-onboarding",
1469
+ "name": "Onboarding",
1470
+ "file": "components/template-onboarding.json",
1471
+ "status": "preview",
1472
+ "summary": "A template for an onboarding process.",
1473
+ "keywords": [
1474
+ "getting started",
1475
+ "guide",
1476
+ "help",
1477
+ "introduction",
1478
+ "onboarding",
1479
+ "support",
1480
+ "template onboarding",
1481
+ "template-onboarding",
1482
+ "tutorial",
1483
+ "welcome"
1484
+ ]
1485
+ },
1475
1486
  {
1476
1487
  "id": "template-stats",
1477
- "name": "Stats template",
1488
+ "name": "Stats",
1478
1489
  "file": "components/template-stats.json",
1479
1490
  "status": "preview",
1480
1491
  "summary": "Tailwind-first stats template for composing metric cards directly in markup without component-specific classes.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twntyx-css",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "exports": {
5
5
  "./llm": "./llm/index.json",
6
6
  "./llm/components/*": "./llm/components/*.json",
@@ -304,12 +304,6 @@
304
304
  both;
305
305
  --animate-shake-bottom: shake-bottom 0.6s
306
306
  cubic-bezier(0.455, 0.03, 0.515, 0.955) both;
307
- --animate-claim-diamond-rotate: claimDiamondRotate 1s
308
- cubic-bezier(0, 0.4, 0, 1) both infinite;
309
- --animate-claim-diamond-left: claimDiamondLeft 1s cubic-bezier(0, 0.4, 0, 1)
310
- both infinite;
311
- --animate-claim-diamond-right: claimDiamondRight 1s cubic-bezier(0, 0.4, 0, 1)
312
- both infinite;
313
307
  --animate-claim-radar: claimRadar 3s cubic-bezier(0, 0.4, 0, 1) both infinite;
314
308
  --animate-radar: radar 2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
315
309
  --animate-photobooth-in: photoboothIn 1s cubic-bezier(0, 0.4, 0, 1) both 0.5s;
@@ -819,35 +813,6 @@
819
813
  }
820
814
  }
821
815
 
822
- @keyframes claimDiamondLeft {
823
- 0% {
824
- transform: translateX(-20rem);
825
- }
826
- 100% {
827
- transform: translateX(-1rem);
828
- }
829
- }
830
-
831
- @keyframes claimDiamondRight {
832
- 0% {
833
- transform: translateX(20rem);
834
- }
835
- 100% {
836
- transform: translateX(1rem);
837
- }
838
- }
839
-
840
- @keyframes claimDiamondRotate {
841
- 0% {
842
- transform: rotate(-45deg);
843
- opacity: 1;
844
- }
845
- 100% {
846
- transform: rotate(-45deg);
847
- opacity: 0;
848
- }
849
- }
850
-
851
816
  @keyframes shake-bottom {
852
817
  0%,
853
818
  100% {
@@ -875,48 +840,6 @@
875
840
  }
876
841
  }
877
842
 
878
- @keyframes xpEventInLeft {
879
- 0% {
880
- transform: translateX(-2rem);
881
- opacity: 0;
882
- }
883
- 100% {
884
- transform: translateX(0);
885
- opacity: 1;
886
- }
887
- }
888
- @keyframes xpEventInRight {
889
- 0% {
890
- transform: translateX(100%);
891
- opacity: 0;
892
- }
893
- 100% {
894
- transform: translateX(0);
895
- opacity: 1;
896
- }
897
- }
898
-
899
- @keyframes xpEventInHeight {
900
- 0% {
901
- height: 0;
902
- }
903
- 100% {
904
- height: 1.75rem;
905
- }
906
- }
907
-
908
- @keyframes xpRewardInScale {
909
- 0% {
910
- transform: scale(0) rotate(15deg);
911
- opacity: 0;
912
- }
913
- 100% {
914
- transform: scale(1) rotate(0deg);
915
- rotate: 0deg;
916
- opacity: 1;
917
- }
918
- }
919
-
920
843
  @keyframes progressbarHighlight {
921
844
  0% {
922
845
  transform: translateX(-100%);
@@ -932,17 +855,6 @@
932
855
  }
933
856
  }
934
857
 
935
- @keyframes letterInBottom {
936
- 0% {
937
- opacity: 0;
938
- transform: translateY(50%) scale(0.95) rotate(15deg);
939
- }
940
- 100% {
941
- opacity: 1;
942
- transform: translateY(0) scale(1) rotate(0deg);
943
- }
944
- }
945
-
946
858
  @keyframes cashTop {
947
859
  0% {
948
860
  transform: translateY(0);
@@ -965,39 +877,6 @@
965
877
  }
966
878
  }
967
879
 
968
- @keyframes xpEventInOpacity {
969
- 0%,
970
- 100% {
971
- opacity: 0;
972
- }
973
- 15%,
974
- 70% {
975
- opacity: 1;
976
- }
977
- }
978
-
979
- @keyframes xpEventInScale {
980
- 0% {
981
- transform: scale(1.2);
982
- filter: blur(1rem);
983
- opacity: 0;
984
- }
985
- 100% {
986
- transform: scale(1);
987
- filter: blur(0rem);
988
- opacity: 1;
989
- }
990
- }
991
-
992
- @keyframes xpEventInTranslate {
993
- 0% {
994
- transform: translateY(0);
995
- }
996
- 100% {
997
- transform: translateY(-100%);
998
- }
999
- }
1000
-
1001
880
  @keyframes dropdownIn {
1002
881
  0% {
1003
882
  transform: scale(0.95);
@@ -1352,15 +1231,7 @@
1352
1231
  transform: translateY(-12%);
1353
1232
  }
1354
1233
  }
1355
- @keyframes floatCoin {
1356
- 0%,
1357
- 100% {
1358
- transform: translateY(0);
1359
- }
1360
- 50% {
1361
- transform: translateY(-0.625rem);
1362
- }
1363
- }
1234
+
1364
1235
  @keyframes float {
1365
1236
  0% {
1366
1237
  transform: translateY(5%);
@@ -2025,12 +1896,14 @@
2025
1896
  @keyframes explosion {
2026
1897
  0% {
2027
1898
  transform: scale(1);
2028
- box-shadow: inset 0 0 0 1.5rem rgba(255, 255, 0, 1);
1899
+ box-shadow: inset 0 0 0 1.5rem
1900
+ color-mix(in srgb, var(--color-brand-default) 100%, transparent 100%);
2029
1901
  filter: brightness(150%);
2030
1902
  }
2031
1903
  100% {
2032
1904
  transform: scale(2);
2033
- box-shadow: inset 0 0 0 0 rgba(255, 255, 0, 0);
1905
+ box-shadow: inset 0 0 0 0
1906
+ color-mix(in srgb, var(--color-brand-default) 100%, transparent 100%);
2034
1907
  filter: brightness(100%);
2035
1908
  }
2036
1909
  }
@@ -3,63 +3,50 @@
3
3
  /*----------------------------*/
4
4
 
5
5
  .countdown {
6
- @apply
7
- leading-[0]
6
+ @apply leading-[0]
8
7
  inline-flex
9
- items-baseline
10
- ;
8
+ items-baseline;
9
+ @-moz-document url-prefix() {
10
+ @apply items-center!;
11
+ }
11
12
  > * {
12
- @apply
13
- not-italic
14
- ;
13
+ @apply not-italic;
15
14
  }
16
15
 
17
16
  > i:not(:last-child) {
18
- @apply
19
- mr-0.5
20
- ;
17
+ @apply mr-0.5;
21
18
  }
22
19
  > span {
23
- @apply
24
- h-4
20
+ @apply h-4
25
21
  leading-none
26
22
  inline-block
27
23
  overflow-y-hidden
28
- /* mx-auto */
29
- ;
24
+ /* mx-auto */;
30
25
  &::before {
31
- @apply
32
- relative
26
+ @apply relative
33
27
  content-["00\a_01\a_02\a_03\a_04\a_05\a_06\a_07\a_08\a_09\a_10\a_11\a_12\a_13\a_14\a_15\a_16\a_17\a_18\a_19\a_20\a_21\a_22\a_23\a_24\a_25\a_26\a_27\a_28\a_29\a_30\a_31\a_32\a_33\a_34\a_35\a_36\a_37\a_38\a_39\a_40\a_41\a_42\a_43\a_44\a_45\a_46\a_47\a_48\a_49\a_50\a_51\a_52\a_53\a_54\a_55\a_56\a_57\a_58\a_59\a_60\a_61\a_62\a_63\a_64\a_65\a_66\a_67\a_68\a_69\a_70\a_71\a_72\a_73\a_74\a_75\a_76\a_77\a_78\a_79\a_80\a_81\a_82\a_83\a_84\a_85\a_86\a_87\a_88\a_89\a_90\a_91\a_92\a_93\a_94\a_95\a_96\a_97\a_98\a_99\a"]
34
28
  whitespace-pre
35
29
  text-center
36
30
  transition-all
37
31
  duration-1000
38
32
  top-[calc(var(--value)_*_-1em)]
39
- ease-[cubic-bezier(0.9,0,0.1,1)]
40
- ;
33
+ ease-[cubic-bezier(0.9,0,0.1,1)];
41
34
  }
42
35
  }
43
36
  }
44
37
 
45
38
  .chip {
46
39
  .countdown > span {
47
- @apply
48
- h-4
49
- ;
40
+ @apply h-4;
50
41
  }
51
42
  &.chip-sm {
52
43
  .countdown > span {
53
- @apply
54
- h-3
55
- ;
44
+ @apply h-3;
56
45
  }
57
46
  }
58
47
  &.chip-xs {
59
48
  .countdown > span {
60
- @apply
61
- h-2
62
- ;
49
+ @apply h-2;
63
50
  }
64
51
  }
65
- }
52
+ }
@@ -16,35 +16,37 @@
16
16
  }
17
17
 
18
18
  @utility progress-radial {
19
- @apply inline-flex overflow-hidden relative justify-center items-center rounded-full transition-all duration-75 include-transition;
19
+ @apply inline-flex overflow-hidden relative justify-center items-center rounded-full transition-all duration-75 include-transition;
20
20
 
21
- width: var(--size);
22
- height: var(--size);
21
+ width: var(--size);
22
+ height: var(--size);
23
23
 
24
- /* Create the radial progress background */
25
- background:
26
- radial-gradient(farthest-side, currentColor 98%, transparent) top/var(--thickness) var(--thickness) no-repeat,
27
- conic-gradient(currentColor calc(var(--value) * 1%), transparent 0);
24
+ /* Create the radial progress background */
25
+ background:
26
+ radial-gradient(farthest-side, currentColor 98%, transparent)
27
+ top/var(--thickness) var(--thickness) no-repeat,
28
+ conic-gradient(currentColor calc(var(--value) * 1%), transparent 0);
28
29
 
29
- /* Progress indicator dot */
30
- &::after {
31
- @apply absolute
30
+ /* Progress indicator dot */
31
+ &::after {
32
+ @apply absolute
32
33
  rounded-full
33
34
  bg-current
34
35
  content-['']
35
36
  transition-transform
36
37
  include-transition duration-75;
37
- width: var(--thickness);
38
- height: var(--thickness);
39
- inset: calc(50% - var(--thickness) / 2);
40
- transform: rotate(calc(var(--value) * 3.6deg - 90deg)) translate(calc(var(--size) / 2 - 50%));
41
- }
38
+ width: var(--thickness);
39
+ height: var(--thickness);
40
+ inset: calc(50% - var(--thickness) / 2);
41
+ transform: rotate(calc(var(--value) * 3.6deg - 90deg))
42
+ translate(calc(var(--size) / 2 - 50%));
43
+ }
42
44
 
43
- /* Inner circle */
44
- .progress-inner {
45
- @apply absolute rounded-full bg-background-surface;
46
- inset: var(--thickness);
47
- }
45
+ /* Inner circle */
46
+ .progress-inner {
47
+ @apply absolute rounded-full bg-background-surface;
48
+ inset: var(--thickness);
49
+ }
48
50
 
49
51
  /* Value text */
50
52
  .progress-value {
@@ -54,66 +56,66 @@
54
56
 
55
57
  /* Size variants */
56
58
  @utility progress-xs {
57
- --size: 44px;
58
- --thickness: 2px;
59
+ --size: 44px;
60
+ --thickness: 2px;
59
61
  @apply text-xs;
60
62
  }
61
63
 
62
64
  @utility progress-sm {
63
- --size: 64px;
64
- --thickness: 3px;
65
+ --size: 64px;
66
+ --thickness: 3px;
65
67
  @apply text-sm;
66
68
  }
67
69
 
68
70
  @utility progress-md {
69
- --size: 96px;
70
- --thickness: 4px;
71
+ --size: 96px;
72
+ --thickness: 4px;
71
73
  @apply text-base;
72
74
  }
73
75
 
74
76
  @utility progress-lg {
75
- --size: 128px;
76
- --thickness: 6px;
77
+ --size: 128px;
78
+ --thickness: 6px;
77
79
  @apply text-xl;
78
80
  }
79
81
 
80
82
  @utility progress-xl {
81
- --size: 160px;
82
- --thickness: 8px;
83
+ --size: 160px;
84
+ --thickness: 8px;
83
85
  @apply text-2xl;
84
86
  }
85
87
 
86
88
  /* Linear progress */
87
89
  @utility progress-linear {
88
- --thickness: 6px;
89
- @apply relative w-full rounded-full bg-line-highlight text-background-brand h-(--thickness);
90
+ --thickness: 6px;
91
+ @apply relative w-full rounded-full bg-line-highlight text-background-brand h-(--thickness);
90
92
 
91
- /* Progress bar */
92
- &::after {
93
- @apply content-[''] absolute inset-0 bg-current rounded-full transition-all duration-300 ease-out-quart;
94
- width: var(--value, 0%);
95
- }
93
+ /* Progress bar */
94
+ &::after {
95
+ @apply content-[''] absolute inset-0 bg-current rounded-full transition-all duration-300 ease-out-quart;
96
+ width: var(--value, 0%);
97
+ }
96
98
 
97
- /* Size variants */
98
- &.progress-xs {
99
- --thickness: 2px;
100
- }
99
+ /* Size variants */
100
+ &.progress-xs {
101
+ --thickness: 2px;
102
+ }
101
103
 
102
- &.progress-sm {
103
- --thickness: 4px;
104
- }
104
+ &.progress-sm {
105
+ --thickness: 4px;
106
+ }
105
107
 
106
- &.progress-md {
107
- --thickness: 6px;
108
- }
108
+ &.progress-md {
109
+ --thickness: 6px;
110
+ }
109
111
 
110
- &.progress-lg {
111
- --thickness: 10px;
112
- }
112
+ &.progress-lg {
113
+ --thickness: 10px;
114
+ }
113
115
 
114
- &.progress-xl {
115
- --thickness: 12px;
116
- }
116
+ &.progress-xl {
117
+ --thickness: 12px;
118
+ }
117
119
 
118
120
  .progress-label {
119
121
  @apply text-xs text-text-tertiary whitespace-nowrap inline absolute bottom-2.5 -translate-x-full left-[calc(var(--value))];
@@ -122,86 +124,86 @@
122
124
 
123
125
  /* Bullet progress */
124
126
  @utility progress-bullet {
125
- --thickness: 8px;
126
- @apply flex gap-[calc(var(--thickness)/1.75)] text-brand-default;
127
+ --thickness: 8px;
128
+ @apply flex gap-(--thickness) text-brand-default;
127
129
 
128
- &:not(:has(.is-active)) li,
129
- li.is-active ~ li {
130
- &::after {
131
- @apply translate-y-full;
132
- }
130
+ &:not(:has(.is-active)) li,
131
+ li.is-active ~ li {
132
+ &::after {
133
+ @apply translate-y-full;
134
+ }
135
+ }
136
+
137
+ li {
138
+ @apply overflow-hidden relative rounded-full size-2 bg-line-highlight h-(--thickness) w-(--thickness);
139
+
140
+ &::after {
141
+ @apply content-[''] absolute inset-0 rounded-full transition-transform duration-0 ease-out-cubic translate-y-0 bg-current;
142
+ }
143
+ }
144
+
145
+ li.is-active {
146
+ &::after {
147
+ @apply bg-current duration-500;
133
148
  }
149
+ }
150
+
151
+ &.progress-xs {
152
+ --thickness: 4px;
153
+ }
154
+
155
+ &.progress-sm {
156
+ --thickness: 6px;
157
+ }
158
+
159
+ &.progress-md {
160
+ --thickness: 8px;
161
+ }
162
+
163
+ &.progress-lg {
164
+ --thickness: 10px;
165
+ }
166
+
167
+ &.progress-xl {
168
+ --thickness: 12px;
169
+ }
170
+
171
+ /* Full width variant */
172
+ &.progress-full {
173
+ --thickness: 4px;
174
+ @apply w-full;
134
175
 
135
176
  li {
136
- @apply overflow-hidden relative rounded-full size-2 bg-line-highlight h-(--thickness) w-(--thickness);
177
+ @apply flex-1 h-(--thickness);
137
178
 
138
179
  &::after {
139
- @apply content-[''] absolute inset-0 rounded-full transition-transform duration-0 ease-out-cubic translate-y-0 bg-current;
180
+ @apply w-full opacity-100 translate-x-0 translate-y-0;
140
181
  }
141
182
  }
142
183
 
143
- li.is-active {
184
+ &:not(:has(.is-active)) li,
185
+ li.is-active ~ li {
144
186
  &::after {
145
- @apply bg-current duration-500;
187
+ @apply -translate-x-[calc(100%+2px)] translate-y-0;
146
188
  }
147
189
  }
148
190
 
149
191
  &.progress-xs {
150
- --thickness: 4px;
192
+ --thickness: 1px;
151
193
  }
152
194
 
153
195
  &.progress-sm {
154
- --thickness: 6px;
196
+ --thickness: 2px;
155
197
  }
156
198
 
157
199
  &.progress-md {
158
- --thickness: 8px;
200
+ --thickness: 4px;
159
201
  }
160
202
 
161
203
  &.progress-lg {
162
- --thickness: 10px;
163
- }
164
-
165
- &.progress-xl {
166
- --thickness: 12px;
204
+ --thickness: 6px;
167
205
  }
168
206
 
169
- /* Full width variant */
170
- &.progress-full {
171
- --thickness: 4px;
172
- @apply w-full;
173
-
174
- li {
175
- @apply flex-1 h-(--thickness);
176
-
177
- &::after {
178
- @apply w-full opacity-100 translate-x-0 translate-y-0;
179
- }
180
- }
181
-
182
- &:not(:has(.is-active)) li,
183
- li.is-active ~ li {
184
- &::after {
185
- @apply -translate-x-[calc(100%+2px)] translate-y-0;
186
- }
187
- }
188
-
189
- &.progress-xs {
190
- --thickness: 1px;
191
- }
192
-
193
- &.progress-sm {
194
- --thickness: 2px;
195
- }
196
-
197
- &.progress-md {
198
- --thickness: 4px;
199
- }
200
-
201
- &.progress-lg {
202
- --thickness: 6px;
203
- }
204
-
205
207
  &.progress-xl {
206
208
  --thickness: 8px;
207
209
  }
@@ -3,22 +3,20 @@
3
3
  /*----------------------------*/
4
4
 
5
5
  .stepper {
6
- @apply
7
- leading-[0]
6
+ @apply leading-[0]
8
7
  inline-flex
9
- items-baseline
10
- ;
8
+ items-baseline;
9
+ @-moz-document url-prefix() {
10
+ @apply items-center!;
11
+ }
11
12
  > span {
12
- @apply
13
- h-4
13
+ @apply h-4
14
14
  leading-none
15
15
  inline-block
16
16
  overflow-y-hidden
17
- mx-auto
18
- ;
17
+ mx-auto;
19
18
  &::before {
20
- @apply
21
- relative
19
+ @apply relative
22
20
  content-["1\a_2\a_3\a_4\a_5\a_6\a_7\a_8\a_9\a_0\a_1\a_2\a_3\a_4\a_5\a_6\a_7\a_8\a_9\a_0\a_1\a_2\a_3\a_4\a_5\a_6\a_7\a_8\a_9\a_0\a_1\a_2\a_3\a_4\a_5\a_6\a_7\a_8\a_9\a_0\a_1\a_2\a_3\a_4\a_5\a_6\a_7\a_8\a_9\a"]
23
21
  whitespace-pre
24
22
  text-center
@@ -27,8 +25,7 @@
27
25
  top-0
28
26
  ease-[cubic-bezier(0.9,0,0.1,1)]
29
27
  animate-[stepper_5s_cubic-bezier(0.9,0,0.1,1)_both]
30
- block
31
- ;
28
+ block;
32
29
  }
33
30
  &:nth-last-child(1)::before {
34
31
  animation-duration: 2s;
@@ -69,4 +66,4 @@
69
66
  100% {
70
67
  transform: translateY(calc(-8.95em + (var(--value) * -1em)));
71
68
  }
72
- }
69
+ }
@@ -1 +0,0 @@
1
- <div class="card-assessment">Investor fit card</div>