css-zero 1.1.15 → 2.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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -5
  3. data/app/assets/stylesheets/css-zero/reset.css +30 -14
  4. data/app/assets/stylesheets/css-zero/transitions.css +8 -0
  5. data/app/assets/stylesheets/css-zero/utilities.css +9 -15
  6. data/app/assets/stylesheets/css-zero/variables.css +1 -1
  7. data/lib/css_zero/version.rb +1 -1
  8. data/lib/generators/css_zero/add/USAGE +1 -1
  9. data/lib/generators/css_zero/add/add_generator.rb +7 -1
  10. data/lib/generators/css_zero/add/resources.yml +54 -34
  11. data/lib/generators/css_zero/add/templates/app/assets/images/avatar.svg +1 -0
  12. data/lib/generators/css_zero/add/templates/app/assets/images/camera.svg +1 -1
  13. data/lib/generators/css_zero/add/templates/app/assets/images/chevron-down-zinc-500.svg +1 -0
  14. data/lib/generators/css_zero/add/templates/app/assets/images/chevron-down.svg +1 -1
  15. data/lib/generators/css_zero/add/templates/app/assets/images/chevron-left.svg +1 -1
  16. data/lib/generators/css_zero/add/templates/app/assets/images/chevron-right.svg +1 -1
  17. data/lib/generators/css_zero/add/templates/app/assets/images/chevrons-up-down.svg +1 -0
  18. data/lib/generators/css_zero/add/templates/app/assets/images/copy.svg +1 -1
  19. data/lib/generators/css_zero/add/templates/app/assets/images/download.svg +1 -1
  20. data/lib/generators/css_zero/add/templates/app/assets/images/ellipsis.svg +1 -1
  21. data/lib/generators/css_zero/add/templates/app/assets/images/eye-off.svg +1 -0
  22. data/lib/generators/css_zero/add/templates/app/assets/images/eye.svg +1 -1
  23. data/lib/generators/css_zero/add/templates/app/assets/images/grip-horizontal-zink-500.svg +1 -0
  24. data/lib/generators/css_zero/add/templates/app/assets/images/grip-vertical-zink-500.svg +1 -0
  25. data/lib/generators/css_zero/add/templates/app/assets/images/loading.svg +4 -0
  26. data/lib/generators/css_zero/add/templates/app/assets/images/menu.svg +1 -1
  27. data/lib/generators/css_zero/add/templates/app/assets/images/minus.svg +1 -1
  28. data/lib/generators/css_zero/add/templates/app/assets/images/moon.svg +1 -0
  29. data/lib/generators/css_zero/add/templates/app/assets/images/search.svg +1 -1
  30. data/lib/generators/css_zero/add/templates/app/assets/images/share.svg +1 -1
  31. data/lib/generators/css_zero/add/templates/app/assets/images/sun.svg +1 -0
  32. data/lib/generators/css_zero/add/templates/app/assets/images/x.svg +1 -1
  33. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/accordion.css +4 -8
  34. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/alert.css +8 -11
  35. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/avatar.css +1 -3
  36. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/badge.css +11 -2
  37. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/breadcrumb.css +1 -9
  38. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/button.css +12 -19
  39. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/card.css +4 -4
  40. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/carousel.css +5 -5
  41. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/color_scheme.css +33 -0
  42. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/combobox.css +3 -3
  43. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/command.css +2 -4
  44. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/datepicker.css +1 -1
  45. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/dialog.css +2 -6
  46. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/dropzone.css +14 -13
  47. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/flash.css +3 -4
  48. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/group.css +33 -6
  49. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/icons.css +41 -0
  50. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/input-clearable.css +7 -0
  51. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/input-copyable.css +4 -0
  52. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/input-revealable.css +7 -0
  53. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/input.css +24 -30
  54. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/menu.css +2 -4
  55. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/progress.css +2 -2
  56. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/prose.css +1 -5
  57. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/range.css +27 -0
  58. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/resizable.css +22 -7
  59. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/sheet.css +2 -2
  60. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/sidebar_menu.css +6 -8
  61. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/skeleton.css +1 -0
  62. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/table.css +1 -1
  63. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/tabs.css +1 -1
  64. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/toggle.css +8 -10
  65. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/trix.css +24 -3
  66. data/lib/generators/css_zero/add/templates/app/javascript/controllers/autosave_controller.js +4 -4
  67. data/lib/generators/css_zero/add/templates/app/javascript/controllers/back_navigation_controller.js +13 -0
  68. data/lib/generators/css_zero/add/templates/app/javascript/controllers/chart_controller.js +10 -14
  69. data/lib/generators/css_zero/add/templates/app/javascript/controllers/color_scheme_controller.js +26 -0
  70. data/lib/generators/css_zero/add/templates/app/javascript/controllers/combobox_controller.js +1 -1
  71. data/lib/generators/css_zero/add/templates/app/javascript/controllers/context_menu_controller.js +5 -5
  72. data/lib/generators/css_zero/add/templates/app/javascript/controllers/datepicker_controller.js +0 -1
  73. data/lib/generators/css_zero/add/templates/app/javascript/controllers/dialog_controller.js +4 -4
  74. data/lib/generators/css_zero/add/templates/app/javascript/controllers/dropzone_controller.js +1 -1
  75. data/lib/generators/css_zero/add/templates/app/javascript/controllers/dual_range_controller.js +15 -0
  76. data/lib/generators/css_zero/add/templates/app/javascript/controllers/form_controller.js +10 -5
  77. data/lib/generators/css_zero/add/templates/app/javascript/controllers/{copyable_input_controller.js → input_copyable_controller.js} +4 -4
  78. data/lib/generators/css_zero/add/templates/app/javascript/controllers/{revealable_input_controller.js → input_revealable_controller.js} +2 -2
  79. data/lib/generators/css_zero/add/templates/app/javascript/controllers/inputmask_controller.js +1 -1
  80. data/lib/generators/css_zero/add/templates/app/javascript/controllers/menu_controller.js +42 -7
  81. data/lib/generators/css_zero/add/templates/app/javascript/controllers/popover_controller.js +13 -13
  82. data/lib/generators/css_zero/add/templates/app/javascript/controllers/resizable_controller.js +31 -0
  83. data/lib/generators/css_zero/add/templates/app/javascript/controllers/sortable_controller.js +1 -1
  84. data/lib/generators/css_zero/add/templates/app/javascript/controllers/timezone_cookie_controller.js +11 -0
  85. data/lib/generators/css_zero/add/templates/app/javascript/controllers/turbo_confirm_controller.js +1 -1
  86. data/lib/generators/css_zero/add/templates/app/javascript/controllers/{otp_input_controller.js → web_otp_controller.js} +5 -7
  87. data/lib/generators/css_zero/install/templates/app/assets/stylesheets/base.css +16 -51
  88. metadata +26 -15
  89. data/lib/generators/css_zero/add/templates/app/assets/images/arrow-left.svg +0 -1
  90. data/lib/generators/css_zero/add/templates/app/assets/images/arrow-right.svg +0 -1
  91. data/lib/generators/css_zero/add/templates/app/assets/images/circle-alert.svg +0 -1
  92. data/lib/generators/css_zero/add/templates/app/assets/images/default-picture.webp +0 -0
  93. data/lib/generators/css_zero/add/templates/app/assets/images/loader-circle.svg +0 -1
  94. data/lib/generators/css_zero/add/templates/app/assets/images/off.svg +0 -1
  95. data/lib/generators/css_zero/add/templates/app/assets/images/select-arrow.svg +0 -1
  96. data/lib/generators/css_zero/add/templates/app/assets/stylesheets/input_concerns.css +0 -19
  97. data/lib/generators/css_zero/add/templates/app/javascript/controllers/navigation_controller.js +0 -16
  98. /data/lib/generators/css_zero/add/templates/app/javascript/controllers/{clearable_input_controller.js → input_clearable_controller.js} +0 -0
@@ -1,24 +1,21 @@
1
1
  .alert {
2
- border: 1px solid var(--alert-border-color, var(--color-border));
2
+ background-color: var(--alert-background, var(--color-bg));
3
3
  border-radius: var(--rounded-lg);
4
+ border: 1px solid var(--alert-border-color, var(--color-border));
4
5
  color: var(--alert-color, var(--color-text));
5
6
  font-size: var(--text-sm);
6
7
  inline-size: var(--size-full);
7
8
  padding: var(--size-4);
8
-
9
- img {
10
- filter: var(--alert-icon-color, var(--color-filter-text));
11
- }
12
9
  }
13
10
 
14
11
  .alert--positive {
15
- --alert-border-color: var(--color-positive);
16
- --alert-color: var(--color-positive);
17
- --alert-icon-color: var(--color-filter-positive);
12
+ --alert-background: var(--color-positive);
13
+ --alert-border-color: transparent;
14
+ --alert-color: white;
18
15
  }
19
16
 
20
17
  .alert--negative {
21
- --alert-border-color: var(--color-negative);
22
- --alert-color: var(--color-negative);
23
- --alert-icon-color: var(--color-filter-negative);
18
+ --alert-background: var(--color-negative);
19
+ --alert-border-color: transparent;
20
+ --alert-color: white;
24
21
  }
@@ -10,7 +10,6 @@
10
10
  overflow: hidden;
11
11
 
12
12
  &:is(.btn) {
13
- --btn-icon-color: none;
14
13
  --btn-inline-size: var(--size);
15
14
  --btn-padding: 0;
16
15
  --btn-radius: var(--radius);
@@ -21,14 +20,13 @@
21
20
  }
22
21
 
23
22
  img {
24
- align-content: center;
25
23
  aspect-ratio: var(--aspect-square);
26
24
  block-size: var(--size-full);
27
25
  inline-size: var(--size-full);
28
26
  object-fit: cover;
29
27
  }
30
28
 
31
- span[role=img] {
29
+ span[role="img"] {
32
30
  align-items: center;
33
31
  background-color: var(--color-border-light);
34
32
  block-size: var(--size-full);
@@ -1,14 +1,18 @@
1
1
  .badge {
2
+ align-items: center;
2
3
  background-color: var(--badge-background, var(--color-bg));
3
- border-radius: var(--rounded-md);
4
+ border-radius: var(--badge-radius, var(--rounded-md));
4
5
  border: 1px solid var(--badge-border-color, var(--color-border));
5
6
  box-shadow: var(--badge-box-shadow, none);
6
7
  color: var(--badge-color, var(--color-text));
8
+ column-gap: var(--size-1);
7
9
  display: inline-flex;
8
10
  font-size: var(--text-xs);
9
11
  font-weight: var(--font-semibold);
12
+ justify-content: center;
10
13
  line-height: var(--leading-4);
11
- padding: var(--size-0_5) var(--size-2_5);
14
+ min-inline-size: var(--badge-min-inline-size, 0);
15
+ padding: var(--badge-padding, .125rem .5rem);
12
16
  }
13
17
 
14
18
  .badge--primary {
@@ -38,3 +42,8 @@
38
42
  --badge-box-shadow: var(--shadow-sm);
39
43
  --badge-color: white;
40
44
  }
45
+
46
+ .badge--number {
47
+ --badge-min-inline-size: var(--size-5);
48
+ --badge-radius: var(--rounded-full);
49
+ }
@@ -1,4 +1,4 @@
1
- .breadcrumb {
1
+ :where(.breadcrumb) {
2
2
  align-items: center;
3
3
  color: var(--color-text-subtle);
4
4
  column-gap: var(--size-1);
@@ -7,14 +7,6 @@
7
7
  font-size: var(--text-sm);
8
8
  overflow-wrap: break-word;
9
9
 
10
- a {
11
- padding-block-end: 2px;
12
- }
13
-
14
- img {
15
- filter: var(--color-filter-text);
16
- }
17
-
18
10
  a:hover {
19
11
  color: var(--color-text);
20
12
  }
@@ -1,9 +1,6 @@
1
1
  .btn {
2
- --btn-background: var(--color-bg);
3
- --hover-color: oklch(from var(--btn-background) calc(l * .95) c h);
4
-
5
2
  align-items: center;
6
- background-color: var(--btn-background);
3
+ background-color: var(--btn-background, var(--color-bg));
7
4
  block-size: var(--btn-block-size, auto);
8
5
  border-radius: var(--btn-radius, var(--rounded-md));
9
6
  border: 1px solid var(--btn-border-color, var(--color-border));
@@ -18,22 +15,17 @@
18
15
  justify-content: var(--btn-justify-content, center);
19
16
  padding: var(--btn-padding, .375rem 1rem);
20
17
  position: relative;
21
- text-align: var(--btn-text-align, center);
22
18
  white-space: nowrap;
23
19
 
24
- img:not([class]) {
25
- filter: var(--btn-icon-color, var(--color-filter-text));
26
- }
27
-
28
20
  &:hover {
29
- background-color: var(--btn-hover-color, var(--hover-color));
21
+ background-color: var(--btn-hover-color, var(--color-border-light));
30
22
  }
31
23
 
32
24
  &:focus-visible {
33
25
  outline: var(--btn-outline-size, 2px) solid var(--color-selected-dark);
34
26
  }
35
27
 
36
- &:is(:disabled, [aria-disabled=true]) {
28
+ &:is(:disabled, [aria-disabled="true"]) {
37
29
  opacity: var(--opacity-50);
38
30
  pointer-events: none;
39
31
  }
@@ -43,12 +35,13 @@
43
35
  --btn-background: var(--color-primary);
44
36
  --btn-border-color: transparent;
45
37
  --btn-color: var(--color-text-reversed);
46
- --btn-icon-color: var(--color-filter-text-reversed);
38
+ --btn-hover-color: rgb(from var(--color-primary) r g b / .9);
47
39
  }
48
40
 
49
41
  .btn--secondary {
50
42
  --btn-background: var(--color-secondary);
51
43
  --btn-border-color: transparent;
44
+ --btn-hover-color: rgb(from var(--color-secondary) r g b / .8);
52
45
  }
53
46
 
54
47
  .btn--borderless {
@@ -60,41 +53,41 @@
60
53
  --btn-background: var(--color-positive);
61
54
  --btn-border-color: transparent;
62
55
  --btn-color: white;
63
- --btn-icon-color: invert(1);
56
+ --btn-hover-color: rgb(from var(--color-positive) r g b / .9);
64
57
  }
65
58
 
66
59
  .btn--negative {
67
60
  --btn-background: var(--color-negative);
68
61
  --btn-border-color: transparent;
69
62
  --btn-color: white;
70
- --btn-icon-color: invert(1);
63
+ --btn-hover-color: rgb(from var(--color-negative) r g b / .9);
71
64
  }
72
65
 
73
66
  .btn--plain {
74
67
  --btn-background: transparent;
75
68
  --btn-border-color: transparent;
69
+ --btn-box-shadow: none;
76
70
  --btn-hover-color: transparent;
77
71
  --btn-padding: 0;
78
- --btn-box-shadow: none;
79
72
  }
80
73
 
81
74
  .btn--icon {
82
75
  --btn-padding: var(--size-2);
83
76
  }
84
77
 
85
- [aria-busy=true] .btn--loading:disabled {
78
+ [aria-busy="true"] .btn--loading:disabled {
86
79
  > * {
87
80
  visibility: hidden;
88
81
  }
89
82
 
90
83
  &::after {
91
84
  animation: spin 1s linear infinite;
92
- background-image: url("loader-circle.svg");
93
- background-size: cover;
85
+ background-color: currentColor;
94
86
  block-size: var(--size-5);
95
87
  content: "";
96
- filter: var(--btn-icon-color, var(--color-filter-text));
97
88
  inline-size: var(--size-5);
89
+ mask-image: url("loading.svg");
90
+ mask-size: cover;
98
91
  position: absolute;
99
92
  }
100
93
  }
@@ -6,11 +6,11 @@
6
6
  padding: var(--size-6);
7
7
  position: relative;
8
8
 
9
- &[aria-disabled=true] {
9
+ &[aria-disabled="true"] {
10
10
  pointer-events: none;
11
11
  }
12
12
 
13
- &[aria-disabled=true]::after {
13
+ &[aria-disabled="true"]::after {
14
14
  background-color: rgba(0, 0, 0, .3);
15
15
  border-radius: inherit;
16
16
  content: "";
@@ -20,6 +20,6 @@
20
20
  }
21
21
 
22
22
  .card--selectable:has(:checked) {
23
- background-color: var(--color-secondary);
24
- border-color: var(--color-primary);
23
+ background-color: rgb(from var(--color-border-light) r g b / .5);
24
+ border-color: var(--color-border-dark);
25
25
  }
@@ -1,24 +1,24 @@
1
1
  .carousel {
2
2
  align-items: center;
3
- column-gap: var(--size-4);
4
3
  display: flex;
4
+ gap: var(--size-4);
5
5
  }
6
6
 
7
7
  .carousel__content {
8
- column-gap: var(--size-4);
9
8
  display: flex;
9
+ gap: var(--carousel-items-gap, 1rem);
10
10
  inline-size: var(--size-full);
11
- overflow-x: hidden;
11
+ overflow: hidden;
12
12
  scroll-behavior: smooth;
13
13
  scroll-snap-type: x mandatory;
14
14
  }
15
15
 
16
16
  .carousel__item {
17
+ --space: var(--carousel-items-gap, 1rem);
17
18
  --items: var(--carousel-items, 1);
18
- --items-gap: calc(100% - 1rem * (var(--items) - 1));
19
+ --items-gap: calc(100% - var(--space) * (var(--items) - 1));
19
20
 
20
21
  flex: 0 0 calc(var(--items-gap) / var(--items));
21
22
  padding: var(--size-1);
22
- scroll-snap-stop: always;
23
23
  scroll-snap-align: start;
24
24
  }
@@ -0,0 +1,33 @@
1
+ [data-color-scheme="light"] {
2
+ color-scheme: light;
3
+ }
4
+
5
+ [data-color-scheme="dark"] {
6
+ color-scheme: dark;
7
+ }
8
+
9
+ [data-color-scheme="system"] {
10
+ color-scheme: light dark;
11
+ }
12
+
13
+ [data-color-scheme="light"] {
14
+ .icon--color-scheme-light { display: inline-flex; }
15
+ .icon--color-scheme-dark { display: none; }
16
+ }
17
+
18
+ [data-color-scheme="dark"] {
19
+ .icon--color-scheme-light { display: none; }
20
+ .icon--color-scheme-dark { display: inline-flex; }
21
+ }
22
+
23
+ [data-color-scheme="system"] {
24
+ @media (prefers-color-scheme: light) {
25
+ .icon--color-scheme-light { display: inline-flex; }
26
+ .icon--color-scheme-dark { display: none; }
27
+ }
28
+
29
+ @media (prefers-color-scheme: dark) {
30
+ .icon--color-scheme-light { display: none; }
31
+ .icon--color-scheme-dark { display: inline-flex; }
32
+ }
33
+ }
@@ -77,7 +77,7 @@
77
77
  }
78
78
 
79
79
  .active {
80
- background-color: var(--color-secondary);
80
+ background-color: var(--color-border-light);
81
81
  color: inherit !important;
82
82
  }
83
83
 
@@ -96,14 +96,14 @@
96
96
 
97
97
  .ts-wrapper.single .ts-control {
98
98
  background-color: var(--color-bg) !important;
99
- background-image: url("select-arrow.svg") !important;
99
+ background-image: url("chevron-down-zinc-500.svg") !important;
100
100
  background-position: center right var(--size-2) !important;
101
101
  background-repeat: no-repeat !important;
102
102
  background-size: var(--size-4) auto !important;
103
103
  }
104
104
 
105
105
  .ts-wrapper.multi .ts-control > .item {
106
- background: var(--color-secondary);
106
+ background: var(--color-border-light);
107
107
  border-radius: var(--rounded-md);
108
108
  color: inherit;
109
109
  line-height: var(--leading-tight);
@@ -47,14 +47,12 @@
47
47
  --btn-border-color: transparent;
48
48
  --btn-box-shadow: none;
49
49
  --btn-font-weight: var(--font-normal);
50
- --btn-hover-color: var(--color-secondary);
51
50
  --btn-justify-content: start;
52
51
  --btn-outline-size: 0;
53
52
  --btn-padding: var(--size-1_5) var(--size-2);
54
- --btn-text-align: start;
55
53
 
56
- &[aria-selected=true] {
57
- --btn-background: var(--color-secondary);
54
+ &[aria-selected="true"] {
55
+ --btn-background: var(--color-border-light);
58
56
  }
59
57
  }
60
58
 
@@ -144,7 +144,7 @@
144
144
  }
145
145
 
146
146
  &:is(.today, .inRange, :hover, :focus) {
147
- background: var(--color-secondary);
147
+ background: var(--color-border-light);
148
148
  color: var(--color-text);
149
149
  }
150
150
 
@@ -9,7 +9,7 @@
9
9
  max-inline-size: var(--dialog-size, var(--max-i-lg));
10
10
 
11
11
  &::backdrop {
12
- background-color: rgba(0, 0, 0, .8);
12
+ background-color: rgba(0, 0, 0, .5);
13
13
  }
14
14
 
15
15
  /* Setup transition */
@@ -37,12 +37,8 @@
37
37
  &[open]::backdrop { opacity: 0; }
38
38
  }
39
39
 
40
- /* Drawer component on mobile */
41
40
  @media (width < 40rem) {
42
- border-end-end-radius: 0;
43
- border-end-start-radius: 0;
44
- margin-block-end: 0;
45
- max-inline-size: none;
41
+ border-radius: 0;
46
42
  }
47
43
  }
48
44
 
@@ -4,21 +4,22 @@
4
4
  border-radius: var(--rounded-xl);
5
5
  border: 2px dashed var(--color-border);
6
6
  padding: var(--size-2);
7
+ }
7
8
 
8
- .dz-preview.dz-image-preview {
9
- background: transparent;
10
- }
9
+ .dropzone .dz-preview.dz-image-preview {
10
+ background: transparent;
11
+ }
11
12
 
12
- .dz-preview .dz-error-message {
13
- background: var(--color-negative);
14
- word-break: break-all;
15
- }
13
+ .dropzone .dz-preview .dz-error-message {
14
+ background: var(--color-negative);
15
+ text-align: center;
16
+ text-wrap: balance;
17
+ }
16
18
 
17
- .dz-preview .dz-error-message::after {
18
- border-bottom: 6px solid var(--color-negative);
19
- }
19
+ .dropzone .dz-preview .dz-error-message::after {
20
+ border-bottom: 6px solid var(--color-negative);
21
+ }
20
22
 
21
- .dz-preview:has(.dz-remove) .dz-error-message {
22
- top: 148px;
23
- }
23
+ .dropzone .dz-preview:has(.dz-remove) .dz-error-message {
24
+ top: 148px;
24
25
  }
@@ -1,16 +1,15 @@
1
1
  .flash {
2
2
  align-items: center;
3
3
  animation: appear-then-fade 4s 300ms both;
4
- backdrop-filter: var(--blur-sm) var(--contrast-75);
5
- background-color: var(--flash-background, rgb(from var(--color-text) r g b / .65));
4
+ background-color: var(--flash-background, var(--color-text));
6
5
  border-radius: var(--rounded-full);
7
6
  color: var(--flash-color, var(--color-text-reversed));
8
7
  column-gap: var(--size-2);
9
- display: flex;
8
+ display: inline-flex;
10
9
  font-size: var(--text-fluid-base);
11
10
  justify-content: center;
12
11
  line-height: var(--leading-none);
13
- margin-block-start: var(--flash-position, var(--size-4));
12
+ margin-block-start: var(--flash-position, var(--size-5));
14
13
  margin-inline: auto;
15
14
  min-block-size: var(--size-11);
16
15
  padding: var(--size-1) var(--size-4);
@@ -1,22 +1,49 @@
1
- .group {
2
- align-items: center;
1
+ .group-inline {
3
2
  display: flex;
3
+ flex-direction: row;
4
4
 
5
- :first-child {
5
+ > :first-child {
6
6
  border-end-end-radius: 0;
7
7
  border-start-end-radius: 0;
8
8
  }
9
9
 
10
- :last-child {
10
+ > :last-child {
11
11
  border-end-start-radius: 0;
12
12
  border-start-start-radius: 0;
13
13
  }
14
14
 
15
- :not(:first-child) {
15
+ > :not(:first-child) {
16
16
  border-inline-start: 0;
17
17
  }
18
18
 
19
- :not(:first-child, :last-child) {
19
+ > :not(:first-child, :last-child) {
20
+ border-radius: 0;
21
+ }
22
+
23
+ > :focus-visible {
24
+ z-index: 1;
25
+ }
26
+ }
27
+
28
+ .group-block {
29
+ display: flex;
30
+ flex-direction: column;
31
+
32
+ > :first-child {
33
+ border-end-end-radius: 0;
34
+ border-end-start-radius: 0;
35
+ }
36
+
37
+ > :last-child {
38
+ border-start-end-radius: 0;
39
+ border-start-start-radius: 0;
40
+ }
41
+
42
+ > :not(:first-child) {
43
+ border-block-start: 0;
44
+ }
45
+
46
+ > :not(:first-child, :last-child) {
20
47
  border-radius: 0;
21
48
  }
22
49
 
@@ -0,0 +1,41 @@
1
+ .icon {
2
+ background-color: var(--icon-color, currentColor);
3
+ block-size: var(--icon-size, 1rem);
4
+ display: inline-block;
5
+ flex-shrink: 0;
6
+ inline-size: var(--icon-size, 1rem);
7
+ mask-image: var(--svg);
8
+ mask-repeat: no-repeat;
9
+ mask-size: cover;
10
+ pointer-events: none;
11
+ user-select: none;
12
+ }
13
+
14
+ img.icon {
15
+ background: none;
16
+ }
17
+
18
+ .icon--loading {
19
+ --svg: url("loading.svg");
20
+ animation: var(--animate-spin);
21
+ animation-duration: 1s;
22
+ }
23
+
24
+ /****************************************************************
25
+ * Lucide (https://lucide.dev)
26
+ * Open-source icon library with a consistent style
27
+ *****************************************************************/
28
+ .icon--chevron-left { --svg: url("chevron-left.svg"); }
29
+ .icon--chevron-right { --svg: url("chevron-right.svg"); }
30
+ .icon--ellipsis { --svg: url("ellipsis.svg"); }
31
+ .icon--chevrons-up-down { --svg: url("chevrons-up-down.svg"); }
32
+ .icon--menu { --svg: url("menu.svg"); }
33
+ .icon--x { --svg: url("x.svg"); }
34
+ .icon--search { --svg: url("search.svg"); }
35
+ .icon--copy { --svg: url("copy.svg"); }
36
+ .icon--download { --svg: url("download.svg"); }
37
+ .icon--share { --svg: url("share.svg"); }
38
+ .icon--camera { --svg: url("camera.svg"); }
39
+ .icon--minus { --svg: url("minus.svg"); }
40
+ .icon--sun { --svg: url("sun.svg"); }
41
+ .icon--moon { --svg: url("moon.svg"); }
@@ -0,0 +1,7 @@
1
+ .input--clearable:has(:placeholder-shown) > button {
2
+ display: none;
3
+ }
4
+
5
+ .input--clearable ::-webkit-search-cancel-button {
6
+ display: none;
7
+ }
@@ -0,0 +1,4 @@
1
+ .input--copied > button > .icon {
2
+ animation: var(--animate-fade-out), var(--animate-slide-out-up);
3
+ animation-duration: var(--time-500);
4
+ }
@@ -0,0 +1,7 @@
1
+ .input--revealable > button > .icon {
2
+ --svg: url("eye.svg");
3
+ }
4
+
5
+ .input--revealed > button > .icon {
6
+ --svg: url("eye-off.svg");
7
+ }
@@ -9,14 +9,18 @@
9
9
  inline-size: var(--input-inline-size, var(--size-full));
10
10
  padding: var(--input-padding, .375rem .75rem);
11
11
 
12
- &:is(textarea[rows=auto]) {
12
+ option {
13
+ padding: revert;
14
+ }
15
+
16
+ &:is(textarea[rows="auto"]) {
13
17
  field-sizing: content;
14
18
  max-block-size: calc(.875rem + var(--input-max-rows, 10lh));
15
19
  min-block-size: calc(.875rem + var(--input-rows, 2lh));
16
20
  }
17
21
 
18
22
  &:is(select):not([multiple], [size]) {
19
- background-image: url("select-arrow.svg");
23
+ background-image: url("chevron-down-zinc-500.svg");
20
24
  background-position: center right var(--size-2);
21
25
  background-repeat: no-repeat;
22
26
  background-size: var(--size-4) auto;
@@ -30,53 +34,43 @@
30
34
  border-color: var(--color-negative);
31
35
  }
32
36
 
33
- &:user-invalid ~ .invalid-feedback {
37
+ &:user-invalid + .invalid-feedback {
34
38
  display: flex;
35
39
  }
36
40
 
41
+ &:focus-visible {
42
+ outline: var(--input-outline-size, 2px) solid var(--color-selected-dark);
43
+ }
44
+
37
45
  &:disabled {
38
46
  cursor: not-allowed;
39
47
  opacity: var(--opacity-50);
40
48
  }
41
- }
42
49
 
43
- .input--actor {
44
- input {
45
- border: 0; inline-size: 100%; outline: 0;
46
- }
47
-
48
- img:not([class]) {
49
- filter: var(--input-icon-color, var(--color-filter-text));
50
- }
51
-
52
- &:focus-within {
53
- outline: var(--input-outline-size, 2px) solid var(--color-selected-dark);
50
+ .field_with_errors & {
51
+ border-color: var(--color-negative);
54
52
  }
55
53
  }
56
54
 
57
- .invalid-feedback {
58
- display: none;
59
- }
60
-
61
55
  :is(.checkbox, .radio) {
62
- transform: scale(1.2);
63
- }
64
-
65
- :is(.checkbox, .radio, .range) {
66
56
  accent-color: var(--color-primary);
67
- }
57
+ transform: scale(1.2);
68
58
 
69
- :is(.input, .checkbox, .radio, .range) {
70
59
  &:focus-visible {
71
60
  outline: var(--input-outline-size, 2px) solid var(--color-selected-dark);
72
61
  }
73
62
 
74
- &:focus-visible:user-invalid {
75
- outline: none;
76
- }
77
-
78
63
  .field_with_errors & {
79
64
  border-color: var(--color-negative);
80
- display: contents;
65
+ }
66
+ }
67
+
68
+ .input--actor {
69
+ input {
70
+ border: 0; inline-size: 100%; outline: 0;
71
+ }
72
+
73
+ &:focus-within {
74
+ outline: var(--input-outline-size, 2px) solid var(--color-selected-dark);
81
75
  }
82
76
  }
@@ -7,7 +7,7 @@
7
7
 
8
8
  .menu__header {
9
9
  font-size: var(--text-sm);
10
- font-weight: var(--font-semibold);
10
+ font-weight: var(--font-medium);
11
11
  padding: var(--size-1_5) var(--size-2);
12
12
  }
13
13
 
@@ -25,14 +25,12 @@
25
25
  --btn-border-color: transparent;
26
26
  --btn-box-shadow: none;
27
27
  --btn-font-weight: var(--font-normal);
28
- --btn-hover-color: var(--color-secondary);
29
28
  --btn-justify-content: start;
30
29
  --btn-outline-size: 0;
31
30
  --btn-padding: var(--size-1_5) var(--size-2);
32
- --btn-text-align: start;
33
31
 
34
32
  &:focus-visible {
35
- --btn-background: var(--color-secondary);
33
+ --btn-background: var(--color-border-light);
36
34
  }
37
35
  }
38
36