css-zero 4.0.2 → 4.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/app/assets/stylesheets/css-zero/utilities.css +2 -2
- data/lib/css_zero/version.rb +1 -1
- data/lib/generators/css_zero/add/templates/app/assets/stylesheets/alert.css +0 -4
- data/lib/generators/css_zero/add/templates/app/assets/stylesheets/avatar.css +8 -4
- data/lib/generators/css_zero/add/templates/app/assets/stylesheets/badge.css +3 -9
- data/lib/generators/css_zero/add/templates/app/assets/stylesheets/button.css +39 -10
- data/lib/generators/css_zero/add/templates/app/assets/stylesheets/combobox.css +1 -1
- data/lib/generators/css_zero/add/templates/app/assets/stylesheets/dropzone.css +4 -2
- data/lib/generators/css_zero/add/templates/app/assets/stylesheets/input.css +2 -2
- data/lib/generators/css_zero/add/templates/app/assets/stylesheets/switch.css +4 -0
- data/lib/generators/css_zero/add/templates/app/assets/stylesheets/table.css +4 -0
- data/lib/generators/css_zero/add/templates/app/javascript/controllers/sound_controller.js +21 -17
- data/lib/generators/css_zero/install/templates/app/assets/stylesheets/base.css +2 -2
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 102ef4b7727a825a523e0aa058e503f788e591b5ae9239eb14340fc9edb378a1
|
|
4
|
+
data.tar.gz: 16a552a5832745f62b46643b0418d43ade6297b3f0e214f649f2160245eb7dc8
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 406054c28bb36ab1883a09cb8469c1ec9aa9ea2d19feb26efbe4a6ca4dd53a27a802c1007008c435c396b3cc54925a2809ad11edfeb31eba4b99d970b358621c
|
|
7
|
+
data.tar.gz: 47978e63fa903de1e63e8f7ccc9148b38f77f353e16e28302824dccb4c4d1720653c980832b2d133f235bc9ceb7527a63518927b4a4ebe6f2de284d5b9dc3b83
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
## 4.1.0 - 2026-08-11
|
|
2
|
+
- Add --color-surface-negative
|
|
3
|
+
- Add --color-text-negative
|
|
4
|
+
- Add .bg-negative
|
|
5
|
+
- Remove --color-negative
|
|
6
|
+
- Remove --color-positive
|
|
7
|
+
- Remove positive variants
|
|
8
|
+
- Remove .text-positive
|
|
9
|
+
- Cosmetic dropzone text message
|
|
10
|
+
- Table with checkbox
|
|
11
|
+
|
|
12
|
+
## 4.0.3 - 2026-08-10
|
|
13
|
+
- Add data-sound-volume-value
|
|
14
|
+
- Button sizes
|
|
15
|
+
- Avatar sizes
|
|
16
|
+
- Switch small
|
|
17
|
+
- Adjust icon sizes
|
|
18
|
+
|
|
1
19
|
## 4.0.2 - 2026-08-09
|
|
2
20
|
- Introduce --btn-column-gap
|
|
3
21
|
- Add avatar badge
|
|
@@ -66,8 +66,7 @@
|
|
|
66
66
|
.text-primary { color: var(--color-text); }
|
|
67
67
|
.text-reversed { color: var(--color-text-reversed); }
|
|
68
68
|
.text-subtle { color: var(--color-text-subtle); }
|
|
69
|
-
.text-
|
|
70
|
-
.text-negative { color: var(--color-negative); }
|
|
69
|
+
.text-negative { color: var(--color-text-negative); }
|
|
71
70
|
.text-link { color: var(--color-link); text-decoration: underline; }
|
|
72
71
|
|
|
73
72
|
.text-xs { font-size: var(--text-xs); }
|
|
@@ -90,6 +89,7 @@
|
|
|
90
89
|
.bg-shade { background-color: var(--color-border-light); }
|
|
91
90
|
.bg-selected { background-color: var(--color-selected); }
|
|
92
91
|
.bg-highlight { background-color: var(--color-highlight); }
|
|
92
|
+
.bg-negative { background-color: var(--color-surface-negative); }
|
|
93
93
|
.bg-transparent { background-color: transparent; }
|
|
94
94
|
|
|
95
95
|
/****************************************************************
|
data/lib/css_zero/version.rb
CHANGED
|
@@ -40,13 +40,17 @@
|
|
|
40
40
|
inline-size: var(--size-full);
|
|
41
41
|
justify-content: center;
|
|
42
42
|
user-select: none;
|
|
43
|
-
|
|
44
|
-
.icon {
|
|
45
|
-
--icon-size: 1em;
|
|
46
|
-
}
|
|
47
43
|
}
|
|
48
44
|
}
|
|
49
45
|
|
|
46
|
+
.avatar--sm {
|
|
47
|
+
--avatar-size: var(--size-6);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.avatar--lg {
|
|
51
|
+
--avatar-size: var(--size-10);
|
|
52
|
+
}
|
|
53
|
+
|
|
50
54
|
.avatar__badge {
|
|
51
55
|
background-color: var(--avatar-badge-color, var(--color-primary));
|
|
52
56
|
block-size: var(--avatar-badge-size);
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
white-space: nowrap;
|
|
17
17
|
|
|
18
18
|
.icon {
|
|
19
|
-
--icon-size:
|
|
19
|
+
--icon-size: var(--size-3);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
|
|
@@ -32,14 +32,8 @@
|
|
|
32
32
|
--badge-color: var(--color-text);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
.badge--positive {
|
|
36
|
-
--badge-background: var(--color-positive);
|
|
37
|
-
--badge-border-color: transparent;
|
|
38
|
-
--badge-color: white;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
35
|
.badge--negative {
|
|
42
|
-
--badge-background: var(--color-negative);
|
|
36
|
+
--badge-background: var(--color-surface-negative);
|
|
43
37
|
--badge-border-color: transparent;
|
|
44
|
-
--badge-color:
|
|
38
|
+
--badge-color: var(--color-text-negative);
|
|
45
39
|
}
|
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
position: relative;
|
|
18
18
|
white-space: nowrap;
|
|
19
19
|
|
|
20
|
+
.icon {
|
|
21
|
+
--icon-size: var(--btn-icon-size, 1rem);
|
|
22
|
+
}
|
|
23
|
+
|
|
20
24
|
&:hover {
|
|
21
25
|
background-color: var(--btn-hover-color, var(--color-border-light));
|
|
22
26
|
}
|
|
@@ -31,6 +35,8 @@
|
|
|
31
35
|
}
|
|
32
36
|
}
|
|
33
37
|
|
|
38
|
+
/* Variants */
|
|
39
|
+
|
|
34
40
|
.btn--primary {
|
|
35
41
|
--btn-background: var(--color-primary);
|
|
36
42
|
--btn-border-color: transparent;
|
|
@@ -50,18 +56,11 @@
|
|
|
50
56
|
--btn-box-shadow: none;
|
|
51
57
|
}
|
|
52
58
|
|
|
53
|
-
.btn--positive {
|
|
54
|
-
--btn-background: var(--color-positive);
|
|
55
|
-
--btn-border-color: transparent;
|
|
56
|
-
--btn-color: white;
|
|
57
|
-
--btn-hover-color: rgb(from var(--color-positive) r g b / .9);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
59
|
.btn--negative {
|
|
61
|
-
--btn-background: var(--color-negative);
|
|
60
|
+
--btn-background: var(--color-surface-negative);
|
|
62
61
|
--btn-border-color: transparent;
|
|
63
|
-
--btn-color:
|
|
64
|
-
--btn-hover-color: rgb(from var(--color-negative) r g b / .9);
|
|
62
|
+
--btn-color: var(--color-text-negative);
|
|
63
|
+
--btn-hover-color: rgb(from var(--color-surface-negative) r g b / .9);
|
|
65
64
|
}
|
|
66
65
|
|
|
67
66
|
.btn--plain {
|
|
@@ -76,6 +75,36 @@
|
|
|
76
75
|
--btn-padding: var(--size-1_5);
|
|
77
76
|
}
|
|
78
77
|
|
|
78
|
+
/* Sizes */
|
|
79
|
+
|
|
80
|
+
.btn--xs {
|
|
81
|
+
--btn-font-size: var(--text-xs);
|
|
82
|
+
--btn-padding: var(--size-0_5) var(--size-2);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.btn--icon-xs {
|
|
86
|
+
--btn-icon-size: var(--size-3_5);
|
|
87
|
+
--btn-padding: var(--size-1);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.btn--sm {
|
|
91
|
+
--btn-padding: var(--size-0_5) var(--size-2_5);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.btn--icon-sm {
|
|
95
|
+
--btn-padding: var(--size-1);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.btn--lg {
|
|
99
|
+
--btn-padding: var(--size-1_5) var(--size-3);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.btn--icon-lg {
|
|
103
|
+
--btn-padding: var(--size-2);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* Extras */
|
|
107
|
+
|
|
79
108
|
.btn--feedback {
|
|
80
109
|
transition-duration: var(--time-150);
|
|
81
110
|
transition-property: transform;
|
|
@@ -11,13 +11,15 @@
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
.dropzone .dz-preview .dz-error-message {
|
|
14
|
-
background: var(--color-negative);
|
|
14
|
+
background: var(--color-surface-negative);
|
|
15
|
+
color: var(--color-text-negative);
|
|
15
16
|
text-align: center;
|
|
16
17
|
text-wrap: balance;
|
|
18
|
+
overflow-wrap: anywhere;
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
.dropzone .dz-preview .dz-error-message::after {
|
|
20
|
-
border-bottom: 6px solid var(--color-negative);
|
|
22
|
+
border-bottom: 6px solid var(--color-surface-negative);
|
|
21
23
|
}
|
|
22
24
|
|
|
23
25
|
.dropzone .dz-preview:has(.dz-remove) .dz-error-message {
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
&:user-invalid {
|
|
46
|
-
border-color: var(--color-negative);
|
|
46
|
+
border-color: var(--color-text-negative);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
&:user-invalid + [feedback] {
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
.field_with_errors & {
|
|
62
|
-
border-color: var(--color-negative);
|
|
62
|
+
border-color: var(--color-text-negative);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
|
|
@@ -2,69 +2,73 @@ import { Controller } from "@hotwired/stimulus"
|
|
|
2
2
|
import { play } from "https://esm.sh/cuelume@0.2.2?standalone"
|
|
3
3
|
|
|
4
4
|
export default class extends Controller {
|
|
5
|
-
static values = { connect: String, disconnect: String }
|
|
5
|
+
static values = { connect: String, disconnect: String, volume: { type: Number, default: 1 } }
|
|
6
6
|
|
|
7
7
|
connect() {
|
|
8
|
-
this.hasConnectValue && play(this.connectValue)
|
|
8
|
+
this.hasConnectValue && this.#play(this.connectValue)
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
disconnect() {
|
|
12
|
-
this.hasDisconnectValue && play(this.disconnectValue)
|
|
12
|
+
this.hasDisconnectValue && this.#play(this.disconnectValue)
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
chime() {
|
|
16
|
-
play("chime")
|
|
16
|
+
this.#play("chime")
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
sparkle() {
|
|
20
|
-
play("sparkle")
|
|
20
|
+
this.#play("sparkle")
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
droplet() {
|
|
24
|
-
play("droplet")
|
|
24
|
+
this.#play("droplet")
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
bloom() {
|
|
28
|
-
play("bloom")
|
|
28
|
+
this.#play("bloom")
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
whisper() {
|
|
32
|
-
play("whisper")
|
|
32
|
+
this.#play("whisper")
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
tick() {
|
|
36
|
-
play("tick")
|
|
36
|
+
this.#play("tick")
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
press() {
|
|
40
|
-
play("press")
|
|
40
|
+
this.#play("press")
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
release() {
|
|
44
|
-
play("release")
|
|
44
|
+
this.#play("release")
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
toggle() {
|
|
48
|
-
play("toggle")
|
|
48
|
+
this.#play("toggle")
|
|
49
49
|
}
|
|
50
50
|
|
|
51
51
|
success() {
|
|
52
|
-
play("success")
|
|
52
|
+
this.#play("success")
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
error() {
|
|
56
|
-
play("error")
|
|
56
|
+
this.#play("error")
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
page() {
|
|
60
|
-
play("page")
|
|
60
|
+
this.#play("page")
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
loading() {
|
|
64
|
-
play("loading")
|
|
64
|
+
this.#play("loading")
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
ready() {
|
|
68
|
-
play("ready")
|
|
68
|
+
this.#play("ready")
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
#play(sound) {
|
|
72
|
+
play(sound, { volume: this.volumeValue })
|
|
69
73
|
}
|
|
70
74
|
}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
:root {
|
|
2
2
|
--color-bg: light-dark(white, var(--zinc-950));
|
|
3
3
|
--color-surface: light-dark(white, var(--zinc-900));
|
|
4
|
+
--color-surface-negative: light-dark(var(--red-100), var(--red-950));
|
|
4
5
|
--color-text: light-dark(var(--zinc-950), white);
|
|
5
6
|
--color-text-reversed: light-dark(white, var(--zinc-950));
|
|
6
7
|
--color-text-subtle: light-dark(var(--zinc-500), var(--zinc-400));
|
|
8
|
+
--color-text-negative: light-dark(var(--red-600), var(--red-400));
|
|
7
9
|
--color-link: light-dark(var(--blue-700), var(--blue-400));
|
|
8
10
|
--color-border-light: light-dark(var(--zinc-100), var(--zinc-800));
|
|
9
11
|
--color-border: light-dark(var(--zinc-200), var(--zinc-700));
|
|
@@ -13,8 +15,6 @@
|
|
|
13
15
|
--color-highlight: light-dark(var(--yellow-200), var(--yellow-900));
|
|
14
16
|
--color-primary: light-dark(var(--zinc-900), var(--zinc-50));
|
|
15
17
|
--color-secondary: light-dark(var(--zinc-100), var(--zinc-800));
|
|
16
|
-
--color-negative: light-dark(var(--red-600), var(--red-600));
|
|
17
|
-
--color-positive: light-dark(var(--green-700), var(--green-700));
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
* {
|