tiny-essentials 1.29.0 → 1.29.2
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.
- package/changelog/1/29/1.md +11 -0
- package/changelog/1/29/2.md +82 -0
- package/dist/v1/TinyBasicsEs.min.js +1 -1
- package/dist/v1/TinyEssentials.min.js +1 -1
- package/dist/v1/TinyFetchLoader.min.js +1 -0
- package/dist/v1/TinyImageLoader.min.js +1 -0
- package/dist/v1/TinyMediaCache.min.js +1 -0
- package/dist/v1/TinyMediaLoader.min.js +1 -0
- package/dist/v1/basics/index.cjs +5 -0
- package/dist/v1/basics/index.d.mts +2 -1
- package/dist/v1/basics/index.d.mts.map +1 -1
- package/dist/v1/basics/index.mjs +2 -1
- package/dist/v1/basics/media/youtube.cjs +275 -0
- package/dist/v1/basics/media/youtube.d.mts +107 -0
- package/dist/v1/basics/media/youtube.d.mts.map +1 -0
- package/dist/v1/basics/media/youtube.mjs +214 -0
- package/dist/v1/index.cjs +13 -0
- package/dist/v1/index.d.mts +6 -1
- package/dist/v1/index.d.mts.map +1 -1
- package/dist/v1/index.mjs +7 -2
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.cjs +0 -1
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.d.mts +0 -1
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.d.mts.map +1 -1
- package/dist/v1/libs/fs/plugins/OPFS/StorageBucket.mjs +0 -1
- package/dist/v1/libs/fs/plugins/OPFS/index.cjs +0 -8
- package/dist/v1/libs/fs/plugins/OPFS/index.d.mts +0 -8
- package/dist/v1/libs/fs/plugins/OPFS/index.d.mts.map +1 -1
- package/dist/v1/libs/fs/plugins/OPFS/index.mjs +0 -8
- package/dist/v1/libs/html/TinyHtml.cjs +1 -1
- package/dist/v1/libs/html/TinyHtml.d.mts +2 -2
- package/dist/v1/libs/html/TinyHtml.d.mts.map +1 -1
- package/dist/v1/libs/html/TinyHtml.mjs +1 -1
- package/dist/v1/libs/html/loader/TinyMediaLoader.cjs +1999 -0
- package/dist/v1/libs/html/loader/TinyMediaLoader.d.mts +999 -0
- package/dist/v1/libs/html/loader/TinyMediaLoader.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/TinyMediaLoader.mjs +1852 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyAudioLoader.cjs +77 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyAudioLoader.d.mts +103 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyAudioLoader.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyAudioLoader.mjs +67 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyContentLoader.cjs +630 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyContentLoader.d.mts +138 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyContentLoader.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyContentLoader.mjs +576 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyVideoLoader.cjs +70 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyVideoLoader.d.mts +100 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyVideoLoader.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/beta/formats/TinyVideoLoader.mjs +60 -0
- package/dist/v1/libs/html/loader/beta/probe/TinyMediaProbe.cjs +946 -0
- package/dist/v1/libs/html/loader/beta/probe/TinyMediaProbe.d.mts +67 -0
- package/dist/v1/libs/html/loader/beta/probe/TinyMediaProbe.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/beta/probe/TinyMediaProbe.mjs +896 -0
- package/dist/v1/libs/html/loader/formats/TinyFetchLoader.cjs +225 -0
- package/dist/v1/libs/html/loader/formats/TinyFetchLoader.d.mts +149 -0
- package/dist/v1/libs/html/loader/formats/TinyFetchLoader.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/formats/TinyFetchLoader.mjs +197 -0
- package/dist/v1/libs/html/loader/formats/TinyImageLoader.cjs +1454 -0
- package/dist/v1/libs/html/loader/formats/TinyImageLoader.d.mts +200 -0
- package/dist/v1/libs/html/loader/formats/TinyImageLoader.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/formats/TinyImageLoader.mjs +1317 -0
- package/dist/v1/libs/html/loader/probe/TinyImageProbe.cjs +668 -0
- package/dist/v1/libs/html/loader/probe/TinyImageProbe.d.mts +83 -0
- package/dist/v1/libs/html/loader/probe/TinyImageProbe.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/probe/TinyImageProbe.mjs +626 -0
- package/dist/v1/libs/html/loader/utils/TinyBufferReader.cjs +277 -0
- package/dist/v1/libs/html/loader/utils/TinyBufferReader.d.mts +118 -0
- package/dist/v1/libs/html/loader/utils/TinyBufferReader.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/utils/TinyBufferReader.mjs +247 -0
- package/dist/v1/libs/html/loader/utils/TinyIsoBox.cjs +128 -0
- package/dist/v1/libs/html/loader/utils/TinyIsoBox.d.mts +49 -0
- package/dist/v1/libs/html/loader/utils/TinyIsoBox.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/utils/TinyIsoBox.mjs +116 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaCache.cjs +796 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaCache.d.mts +354 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaCache.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaCache.mjs +734 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaMirror.cjs +302 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaMirror.d.mts +256 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaMirror.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaMirror.mjs +280 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaProgress.cjs +194 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaProgress.d.mts +138 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaProgress.d.mts.map +1 -0
- package/dist/v1/libs/html/loader/utils/TinyMediaProgress.mjs +175 -0
- package/dist/v1/libs/tools/TinyPkgExportValidator.cjs +359 -55
- package/dist/v1/libs/tools/TinyPkgExportValidator.d.mts +64 -6
- package/dist/v1/libs/tools/TinyPkgExportValidator.d.mts.map +1 -1
- package/dist/v1/libs/tools/TinyPkgExportValidator.mjs +320 -57
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.cjs +0 -1
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.d.mts +0 -1
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.d.mts.map +1 -1
- package/dist/v1/libs/worker/engine/TinyWebWorkerEngine.mjs +0 -1
- package/dist/v1/webTemplates/bootstrap/5.3/scss/background/_background-grid.scss +15 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/components/buttons/_buttons-contrast.scss +208 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/components/buttons/_buttons-ghost.scss +89 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/components/icon/_cube-icon.scss +65 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/components/icon/_sphere-pulse.scss +39 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_badges.scss +90 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_bootstrap-overrides.scss +495 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_buttons.scss +390 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_colors.scss +213 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_effects.scss +153 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_forms-tones.scss +69 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_forms.scss +323 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_global.scss +31 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_links.scss +47 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_tables.scss +25 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_theme.scss +21 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_tokens.scss +161 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_utilities.scss +81 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/_variables.scss +63 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/plugins/_form-tone-mixins.scss +236 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/plugins/_sizing.scss +68 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/plugins/_tone-mixins.scss +392 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/plugins/_typography.scss +112 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/plugins/background/_tiny_gradient_1.scss +131 -0
- package/dist/v1/webTemplates/bootstrap/5.3/scss/themes/deepstrap/plugins/colors/_pink.scss +47 -0
- package/dist/v1/webTemplates/multiformats/14.0/IPFSHasher/index.cjs +2 -2
- package/docs/v1/Exports.md +33 -2
- package/docs/v1/README.md +9 -0
- package/docs/v1/basics/youtube.md +204 -0
- package/docs/v1/libs/html/loader/TinyFetchLoader.md +114 -0
- package/docs/v1/libs/html/loader/TinyImageLoader.md +141 -0
- package/docs/v1/libs/html/loader/TinyMediaCache.md +166 -0
- package/docs/v1/libs/html/loader/TinyMediaLoader.md +300 -0
- package/docs/v1/libs/tools/TinyPkgExportValidator.md +55 -0
- package/docs/v1/webTemplates/ag-psd/31.0/ProcessSolidFilters.md +0 -4
- package/docs/v1/webTemplates/bootstrap/5.3/DeepStrap.md +177 -0
- package/package.json +281 -17
- /package/dist/v1/webTemplates/bootstrap/5.3/scss/input/{Placeholder-Colors-Fix.scss → _placeholder-colors-fix.scss} +0 -0
- /package/dist/v1/webTemplates/bootstrap/5.3/scss/spacing/{Spacing-Plus.scss → _spacing-plus.scss} +0 -0
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Tone mixins
|
|
3
|
+
//
|
|
4
|
+
// Shared emitters for the per-tone plugin partials. Every mixin takes the
|
|
5
|
+
// `--ui-*` token suffix (e.g. `pink`) and assumes the `-rgb` companion exists.
|
|
6
|
+
//
|
|
7
|
+
// Two layers live here:
|
|
8
|
+
//
|
|
9
|
+
// 1. Property emitters — `tone-ink`, `tone-list-group`, `tone-table`.
|
|
10
|
+
// They only declare custom properties and must be called from a selector
|
|
11
|
+
// the caller owns.
|
|
12
|
+
// 2. Class emitters — `tone-badge`, `tone-alert`, `tone-utilities`, ...
|
|
13
|
+
// They own their selector and are safe to call at the root.
|
|
14
|
+
//
|
|
15
|
+
// `tone-plugin` wires every class emitter for a single tone.
|
|
16
|
+
//
|
|
17
|
+
// Depends on `triplet()` and `channels()` from `_tokens.scss`. Both are only
|
|
18
|
+
// resolved when a mixin is *called*, so the import order in `_theme.scss`
|
|
19
|
+
// (mixins first, `tokens` later, plugins last) is safe.
|
|
20
|
+
// =============================================================================
|
|
21
|
+
|
|
22
|
+
@use 'sass:map';
|
|
23
|
+
|
|
24
|
+
// =============================================================================
|
|
25
|
+
// 1. Property emitters
|
|
26
|
+
// =============================================================================
|
|
27
|
+
|
|
28
|
+
/// Re-points every text token a component may read to the readable
|
|
29
|
+
/// foreground of the current tone.
|
|
30
|
+
///
|
|
31
|
+
/// @param {String} $on - `--ui-on-*` suffix, without the prefix.
|
|
32
|
+
@mixin tone-ink($on) {
|
|
33
|
+
--tone-ink: var(--ui-on-#{$on});
|
|
34
|
+
--tone-ink-soft: color-mix(in srgb, var(--ui-on-#{$on}) 78%, transparent);
|
|
35
|
+
|
|
36
|
+
color: color-mix(in srgb, var(--tone-ink) calc(var(--bs-bg-opacity, 1) * 100%), var(--ui-text));
|
|
37
|
+
|
|
38
|
+
--bs-body-color: var(--tone-ink);
|
|
39
|
+
--bs-emphasis-color: var(--tone-ink);
|
|
40
|
+
--bs-heading-color: var(--tone-ink);
|
|
41
|
+
--bs-secondary-color: var(--tone-ink-soft);
|
|
42
|
+
--bs-tertiary-color: var(--tone-ink-soft);
|
|
43
|
+
--bs-card-color: var(--tone-ink);
|
|
44
|
+
--bs-card-cap-color: var(--tone-ink);
|
|
45
|
+
--bs-list-group-color: var(--tone-ink);
|
|
46
|
+
--bs-border-color: color-mix(in srgb, var(--tone-ink) 28%, transparent);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/// Emits the full Bootstrap 5.3 list-group variable set for a tone.
|
|
50
|
+
/// @param {String} $tone - Token suffix, without the `--ui-` prefix.
|
|
51
|
+
@mixin tone-list-group($tone) {
|
|
52
|
+
--bs-list-group-color: var(--ui-#{$tone});
|
|
53
|
+
--bs-list-group-bg: rgb(var(--ui-#{$tone}-rgb) / 0.08);
|
|
54
|
+
--bs-list-group-border-color: rgb(var(--ui-#{$tone}-rgb) / 0.24);
|
|
55
|
+
|
|
56
|
+
--bs-list-group-action-color: var(--ui-#{$tone});
|
|
57
|
+
--bs-list-group-action-hover-color: var(--ui-#{$tone});
|
|
58
|
+
--bs-list-group-action-hover-bg: rgb(var(--ui-#{$tone}-rgb) / 0.14);
|
|
59
|
+
--bs-list-group-action-active-color: var(--ui-#{$tone});
|
|
60
|
+
--bs-list-group-action-active-bg: rgb(var(--ui-#{$tone}-rgb) / 0.2);
|
|
61
|
+
|
|
62
|
+
--bs-list-group-active-color: var(--ui-on-#{$tone});
|
|
63
|
+
--bs-list-group-active-bg: var(--ui-#{$tone});
|
|
64
|
+
--bs-list-group-active-border-color: var(--ui-#{$tone});
|
|
65
|
+
|
|
66
|
+
--bs-list-group-disabled-color: color-mix(in srgb, var(--ui-#{$tone}) 55%, transparent);
|
|
67
|
+
--bs-list-group-disabled-bg: rgb(var(--ui-#{$tone}-rgb) / 0.06);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/// @param {String} $tone - Token suffix, without the `--ui-` prefix.
|
|
71
|
+
@mixin tone-list-group-active($tone) {
|
|
72
|
+
color: var(--ui-on-#{$tone});
|
|
73
|
+
background-color: var(--ui-#{$tone});
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/// Emits the full Bootstrap 5.3 table variable set for a tone.
|
|
77
|
+
/// @param {String} $tone - Token suffix, without the `--ui-` prefix.
|
|
78
|
+
@mixin tone-table($tone) {
|
|
79
|
+
--bs-table-color: var(--ui-#{$tone});
|
|
80
|
+
--bs-table-header-color: var(--ui-#{$tone});
|
|
81
|
+
--bs-table-bg: color-mix(in srgb, var(--ui-#{$tone}) 12%, var(--ui-canvas));
|
|
82
|
+
--bs-table-border-color: color-mix(in srgb, var(--ui-#{$tone}) 32%, var(--ui-canvas));
|
|
83
|
+
|
|
84
|
+
--bs-table-striped-color: var(--ui-#{$tone});
|
|
85
|
+
--bs-table-striped-bg: color-mix(in srgb, var(--ui-#{$tone}) 18%, var(--ui-canvas));
|
|
86
|
+
|
|
87
|
+
--bs-table-active-color: var(--ui-#{$tone});
|
|
88
|
+
--bs-table-active-bg: color-mix(in srgb, var(--ui-#{$tone}) 24%, var(--ui-canvas));
|
|
89
|
+
|
|
90
|
+
--bs-table-hover-color: var(--ui-#{$tone});
|
|
91
|
+
--bs-table-hover-bg: color-mix(in srgb, var(--ui-#{$tone}) 20%, var(--ui-canvas));
|
|
92
|
+
|
|
93
|
+
color: var(--bs-table-color);
|
|
94
|
+
border-color: var(--bs-table-border-color);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/// Animated underline shared by every nav item.
|
|
98
|
+
///
|
|
99
|
+
/// @param {String} $pseudo - Pseudo-element that draws the line.
|
|
100
|
+
/// `.dropdown-toggle` must use `before`, because Bootstrap owns its `after`
|
|
101
|
+
/// (the caret).
|
|
102
|
+
@mixin nav-underline($pseudo: 'after') {
|
|
103
|
+
&::#{$pseudo} {
|
|
104
|
+
position: absolute;
|
|
105
|
+
bottom: 0rem;
|
|
106
|
+
left: 0;
|
|
107
|
+
width: 0;
|
|
108
|
+
height: 1px;
|
|
109
|
+
content: '';
|
|
110
|
+
background: var(--ui-accent);
|
|
111
|
+
transition: width var(--ui-duration) var(--ui-ease);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
&:hover::#{$pseudo},
|
|
115
|
+
&.active::#{$pseudo} {
|
|
116
|
+
width: 100%;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// =============================================================================
|
|
121
|
+
// 2. Class emitters
|
|
122
|
+
// =============================================================================
|
|
123
|
+
|
|
124
|
+
/// Emits the `--ui-*` / `--bs-*` custom properties for a single tone.
|
|
125
|
+
///
|
|
126
|
+
/// @param {String} $name - Tone name, used as the class suffix.
|
|
127
|
+
/// @param {Map} $tokens - `base`, `on`, `emphasis`, `subtle-bg`, `subtle-border`.
|
|
128
|
+
@mixin tone-tokens($name, $tokens) {
|
|
129
|
+
@each $key in ('base', 'on', 'emphasis', 'subtle-bg', 'subtle-border') {
|
|
130
|
+
@if not map.has-key($tokens, $key) {
|
|
131
|
+
@error 'Tone `#{$name}` is missing the `#{$key}` token.';
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
$base: map.get($tokens, 'base');
|
|
136
|
+
|
|
137
|
+
--ui-#{$name}: #{$base};
|
|
138
|
+
--ui-#{$name}-rgb: #{triplet($base)};
|
|
139
|
+
--ui-on-#{$name}: #{map.get($tokens, 'on')};
|
|
140
|
+
|
|
141
|
+
--bs-#{$name}: #{$base};
|
|
142
|
+
--bs-#{$name}-rgb: #{channels($base)};
|
|
143
|
+
--bs-#{$name}-text-emphasis: #{map.get($tokens, 'emphasis')};
|
|
144
|
+
--bs-#{$name}-bg-subtle: #{map.get($tokens, 'subtle-bg')};
|
|
145
|
+
--bs-#{$name}-border-subtle: #{map.get($tokens, 'subtle-border')};
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/// Emits the three button variants for a tone.
|
|
149
|
+
///
|
|
150
|
+
/// @param {String} $name - Class suffix, e.g. `pink`.
|
|
151
|
+
/// @param {String} $tone - Token suffix for `--ui-*`.
|
|
152
|
+
@mixin tone-buttons($name, $tone: $name) {
|
|
153
|
+
.btn-#{$name} {
|
|
154
|
+
@include solid-variant($tone);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.btn-outline-#{$name} {
|
|
158
|
+
@include outline-variant($tone);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.btn-subtle-#{$name} {
|
|
162
|
+
@include subtle-variant($tone);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/// Keeps a hovered/active tone button above its siblings inside a group.
|
|
167
|
+
///
|
|
168
|
+
/// @param {String} $name - Class suffix, e.g. `pink`.
|
|
169
|
+
@mixin tone-button-group($name) {
|
|
170
|
+
@each $prefix in ('btn', 'btn-outline', 'btn-subtle') {
|
|
171
|
+
.btn-group > .#{$prefix}-#{$name},
|
|
172
|
+
.btn-group-vertical > .#{$prefix}-#{$name} {
|
|
173
|
+
position: relative;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.btn-group > .#{$prefix}-#{$name}:hover:not(:disabled):not(.disabled),
|
|
177
|
+
.btn-group-vertical > .#{$prefix}-#{$name}:hover:not(:disabled):not(.disabled) {
|
|
178
|
+
z-index: 1;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.btn-group > .#{$prefix}-#{$name}.active,
|
|
182
|
+
.btn-group > .#{$prefix}-#{$name}:active:not(:disabled):not(.disabled),
|
|
183
|
+
.btn-group-vertical > .#{$prefix}-#{$name}.active,
|
|
184
|
+
.btn-group-vertical > .#{$prefix}-#{$name}:active:not(:disabled):not(.disabled) {
|
|
185
|
+
z-index: 2;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.btn-check:checked + .btn-#{$name} {
|
|
190
|
+
--btn-fill: color-mix(in srgb, var(--ui-#{$name}) var(--btn-press-amount), var(--btn-mix));
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.btn-check:checked + .btn-outline-#{$name},
|
|
194
|
+
.btn-check:checked + .btn-subtle-#{$name} {
|
|
195
|
+
z-index: 2;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/// Emits the soft and floating badge skins for one tone.
|
|
200
|
+
///
|
|
201
|
+
/// @param {String} $name - Class suffix, e.g. `pink`.
|
|
202
|
+
/// @param {String} $tone - Token suffix for `--ui-*`.
|
|
203
|
+
/// @param {String} $on - Token suffix for `--ui-on-*`.
|
|
204
|
+
@mixin tone-badge($name, $tone: $name, $on: $tone) {
|
|
205
|
+
.badge.text-bg-#{$name} {
|
|
206
|
+
color: var(--ui-#{$tone}) !important;
|
|
207
|
+
background-color: rgb(var(--ui-#{$tone}-rgb) / 0.12) !important;
|
|
208
|
+
border-color: rgb(var(--ui-#{$tone}-rgb) / 0.32);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.badge.badge-floating.text-bg-#{$name} {
|
|
212
|
+
color: var(--ui-on-#{$on}) !important;
|
|
213
|
+
background-color: var(--ui-#{$tone}) !important;
|
|
214
|
+
border-color: transparent;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
.btn .badge.text-bg-#{$name}:not(.badge-floating) {
|
|
218
|
+
color: inherit !important;
|
|
219
|
+
background-color: color-mix(in srgb, currentColor 14%, transparent) !important;
|
|
220
|
+
border-color: color-mix(in srgb, currentColor 32%, transparent) !important;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/// Emits the `.text-*`, `.bg-*`, `.border-*` and `.text-bg-*` helpers.
|
|
225
|
+
///
|
|
226
|
+
/// @param {String} $name - Class suffix, e.g. `pink`.
|
|
227
|
+
/// @param {String} $tone - Token suffix for `--ui-*`.
|
|
228
|
+
/// @param {String} $on - Token suffix for `--ui-on-*`.
|
|
229
|
+
@mixin tone-utilities($name, $tone: $name, $on: $tone) {
|
|
230
|
+
.bg-#{$name},
|
|
231
|
+
.text-bg-#{$name} {
|
|
232
|
+
@include tone-ink($on);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
.text-#{$name} {
|
|
236
|
+
color: rgba(var(--bs-#{$name}-rgb), var(--bs-text-opacity, 1)) !important;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.bg-#{$name} {
|
|
240
|
+
background-color: rgba(var(--bs-#{$name}-rgb), var(--bs-bg-opacity, 1)) !important;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.border-#{$name} {
|
|
244
|
+
border-color: rgba(var(--bs-#{$name}-rgb), var(--bs-border-opacity, 1)) !important;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.text-bg-#{$name} {
|
|
248
|
+
color: var(--tone-ink) !important;
|
|
249
|
+
background-color: rgba(var(--bs-#{$name}-rgb), var(--bs-bg-opacity, 1)) !important;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.bg-#{$name}-subtle {
|
|
253
|
+
background-color: var(--bs-#{$name}-bg-subtle) !important;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.text-#{$name}-emphasis {
|
|
257
|
+
color: var(--bs-#{$name}-text-emphasis) !important;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
.border-#{$name}-subtle {
|
|
261
|
+
border-color: var(--bs-#{$name}-border-subtle) !important;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
/// @param {String} $name - Class suffix, e.g. `pink`.
|
|
266
|
+
/// @param {String} $tone - Token suffix for `--ui-*`.
|
|
267
|
+
@mixin tone-alert($name, $tone: $name) {
|
|
268
|
+
.alert-#{$name} {
|
|
269
|
+
--bs-alert-color: var(--ui-#{$tone});
|
|
270
|
+
--bs-alert-bg: rgb(var(--ui-#{$tone}-rgb) / 0.1);
|
|
271
|
+
--bs-alert-border-color: rgb(var(--ui-#{$tone}-rgb) / 0.28);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
/// @param {String} $name - Class suffix, e.g. `pink`.
|
|
276
|
+
/// @param {String} $tone - Token suffix for `--ui-*`.
|
|
277
|
+
@mixin tone-link($name, $tone: $name) {
|
|
278
|
+
.link-#{$name} {
|
|
279
|
+
color: var(--ui-#{$tone});
|
|
280
|
+
|
|
281
|
+
&:hover,
|
|
282
|
+
&:focus {
|
|
283
|
+
color: color-mix(in srgb, var(--ui-#{$tone}) 80%, var(--ui-heading));
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/// @param {String} $name - Class suffix, e.g. `pink`.
|
|
289
|
+
/// @param {String} $tone - Token suffix for `--ui-*`.
|
|
290
|
+
@mixin tone-progress($name, $tone: $name) {
|
|
291
|
+
.progress-bar-#{$name} {
|
|
292
|
+
--bs-progress-bar-bg: var(--ui-#{$tone});
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
/// @param {String} $name - Class suffix, e.g. `pink`.
|
|
297
|
+
/// @param {String} $tone - Token suffix for `--ui-*`.
|
|
298
|
+
@mixin tone-ghost-button($name, $tone: $name) {
|
|
299
|
+
.btn-ghost-#{$name} {
|
|
300
|
+
--bs-btn-color: var(--ui-#{$tone});
|
|
301
|
+
--bs-btn-bg: transparent;
|
|
302
|
+
--bs-btn-border-color: transparent;
|
|
303
|
+
--bs-btn-hover-color: var(--ui-#{$tone});
|
|
304
|
+
--bs-btn-hover-bg: color-mix(in srgb, var(--ui-#{$tone}) 12%, transparent);
|
|
305
|
+
--bs-btn-hover-border-color: transparent;
|
|
306
|
+
--bs-btn-active-color: var(--ui-#{$tone});
|
|
307
|
+
--bs-btn-active-bg: color-mix(in srgb, var(--ui-#{$tone}) 20%, transparent);
|
|
308
|
+
--bs-btn-active-border-color: transparent;
|
|
309
|
+
--bs-btn-disabled-color: var(--ui-#{$tone});
|
|
310
|
+
--bs-btn-disabled-bg: transparent;
|
|
311
|
+
--bs-btn-disabled-border-color: transparent;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
/// @param {String} $name - Class suffix, e.g. `pink`.
|
|
316
|
+
/// @param {String} $tone - Token suffix for `--ui-*`.
|
|
317
|
+
@mixin tone-table-class($name, $tone: $name) {
|
|
318
|
+
.table-#{$name} {
|
|
319
|
+
@include tone-table($tone);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
/// Emits a `.table-{name}` variant from a raw Sass color.
|
|
324
|
+
/// @param {String} $name - Class suffix, e.g. `blue`.
|
|
325
|
+
/// @param {Color} $base - Solid background color.
|
|
326
|
+
@mixin tone-table-from-color($name, $base) {
|
|
327
|
+
$ink: color-contrast($base);
|
|
328
|
+
$bg: mix($base, $body-bg, 12%);
|
|
329
|
+
$border: mix($base, $body-bg, 32%);
|
|
330
|
+
$striped: mix($base, $body-bg, 18%);
|
|
331
|
+
$active: mix($base, $body-bg, 24%);
|
|
332
|
+
$hover: mix($base, $body-bg, 20%);
|
|
333
|
+
|
|
334
|
+
.table-#{$name} {
|
|
335
|
+
--bs-table-color: #{$ink};
|
|
336
|
+
--bs-table-header-color: #{$ink};
|
|
337
|
+
--bs-table-bg: #{$bg};
|
|
338
|
+
--bs-table-border-color: #{$border};
|
|
339
|
+
|
|
340
|
+
--bs-table-striped-color: #{$ink};
|
|
341
|
+
--bs-table-striped-bg: #{$striped};
|
|
342
|
+
|
|
343
|
+
--bs-table-active-color: #{$ink};
|
|
344
|
+
--bs-table-active-bg: #{$active};
|
|
345
|
+
|
|
346
|
+
--bs-table-hover-color: #{$ink};
|
|
347
|
+
--bs-table-hover-bg: #{$hover};
|
|
348
|
+
|
|
349
|
+
color: var(--bs-table-color);
|
|
350
|
+
border-color: var(--bs-table-border-color);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
/// @param {String} $name - Class suffix, e.g. `pink`.
|
|
355
|
+
/// @param {String} $tone - Token suffix for `--ui-*`.
|
|
356
|
+
@mixin tone-list-group-class($name, $tone: $name) {
|
|
357
|
+
.list-group-item.list-group-item-#{$name} {
|
|
358
|
+
@include tone-list-group($tone);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
.list-group-item.list-group-item-#{$name}.active {
|
|
362
|
+
@include tone-list-group-active($tone);
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
// =============================================================================
|
|
367
|
+
// 3. Orchestrator
|
|
368
|
+
// =============================================================================
|
|
369
|
+
|
|
370
|
+
/// Emits every class emitter for a single tone.
|
|
371
|
+
///
|
|
372
|
+
/// @param {String} $name - Tone name, used as the class suffix.
|
|
373
|
+
/// @param {Map} $config - `token` (required) and `on` (defaults to `$name`).
|
|
374
|
+
@mixin tone-plugin($name, $config) {
|
|
375
|
+
@if not map.has-key($config, 'token') {
|
|
376
|
+
@error 'Tone `#{$name}` is missing the `token` key.';
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
$token: map.get($config, 'token');
|
|
380
|
+
$on: if(map.has-key($config, 'on'), map.get($config, 'on'), $token);
|
|
381
|
+
|
|
382
|
+
@include tone-buttons($name, $token);
|
|
383
|
+
@include tone-button-group($name);
|
|
384
|
+
@include tone-utilities($name, $token, $on);
|
|
385
|
+
@include tone-badge($name, $token, $on);
|
|
386
|
+
@include tone-alert($name, $token);
|
|
387
|
+
@include tone-link($name, $token);
|
|
388
|
+
@include tone-progress($name, $token);
|
|
389
|
+
@include tone-ghost-button($name, $token);
|
|
390
|
+
@include tone-table-class($name, $token);
|
|
391
|
+
@include tone-list-group-class($name, $token);
|
|
392
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Compact typography (opt-in)
|
|
3
|
+
//
|
|
4
|
+
// The theme ships with Bootstrap's default 16px type scale. This file restores
|
|
5
|
+
// the denser 14px scale the theme used to ship with.
|
|
6
|
+
//
|
|
7
|
+
// Enable: add `@import 'typography-compact';` as the last line of _theme.scss.
|
|
8
|
+
//
|
|
9
|
+
// For pixel parity, also uncomment the two Sass variables in _variables.scss.
|
|
10
|
+
// They are compile-time values, so they cannot be restored from here.
|
|
11
|
+
// =============================================================================
|
|
12
|
+
|
|
13
|
+
// ------------------------------------------------------------------- scale --
|
|
14
|
+
// `$font-size-base: 0.875rem` multiplied by Bootstrap's own heading ratios.
|
|
15
|
+
// Kept as a map so a future scale change is a one-line edit.
|
|
16
|
+
$compact-headings: (
|
|
17
|
+
'h1': 2.1875rem,
|
|
18
|
+
'h2': 1.75rem,
|
|
19
|
+
'h3': 1.53125rem,
|
|
20
|
+
'h4': 1.3125rem,
|
|
21
|
+
'h5': 1.09375rem,
|
|
22
|
+
'h6': 0.875rem,
|
|
23
|
+
) !default;
|
|
24
|
+
|
|
25
|
+
@each $tag, $size in $compact-headings {
|
|
26
|
+
#{$tag},
|
|
27
|
+
.#{$tag} {
|
|
28
|
+
font-size: $size;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// ---------------------------------------------------------------- Family --
|
|
33
|
+
$font-family-sans-serif:
|
|
34
|
+
'Inter',
|
|
35
|
+
-apple-system,
|
|
36
|
+
BlinkMacSystemFont,
|
|
37
|
+
'Segoe UI',
|
|
38
|
+
sans-serif;
|
|
39
|
+
$font-family-monospace: 'JetBrains Mono', 'Fira Code', 'SFMono-Regular', Consolas, monospace;
|
|
40
|
+
|
|
41
|
+
// -------------------------------------------------------------------- root --
|
|
42
|
+
:root {
|
|
43
|
+
--bs-body-font-size: 0.875rem;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// -------------------------------------------------------------- components --
|
|
47
|
+
.table {
|
|
48
|
+
thead th {
|
|
49
|
+
font-weight: 600;
|
|
50
|
+
letter-spacing: 0.04em;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.navbar .nav-link {
|
|
55
|
+
font-weight: 500;
|
|
56
|
+
font-size: 0.8125rem;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.table thead th {
|
|
60
|
+
font-size: 0.6875rem;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.badge {
|
|
64
|
+
font-family: $font-family-monospace;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.accordion {
|
|
68
|
+
.accordion-button {
|
|
69
|
+
font-weight: 500;
|
|
70
|
+
font-size: 0.8125rem;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.accordion-body {
|
|
74
|
+
font-size: 0.8125rem;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
$btn-font-weight: 500;
|
|
79
|
+
|
|
80
|
+
.btn {
|
|
81
|
+
--bs-btn-font-weight: 500;
|
|
82
|
+
--bs-btn-font-size: 0.8125rem;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.form-control,
|
|
86
|
+
.form-select {
|
|
87
|
+
font-size: 0.8125rem;
|
|
88
|
+
|
|
89
|
+
&-sm {
|
|
90
|
+
font-size: 0.75rem;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
&-lg {
|
|
94
|
+
font-size: 0.9375rem;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.form-label,
|
|
99
|
+
.col-form-label {
|
|
100
|
+
letter-spacing: 0.04em;
|
|
101
|
+
font-size: 0.6875rem;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
.form-text {
|
|
105
|
+
font-size: 0.6875rem;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
@each $state in ('valid', 'invalid') {
|
|
109
|
+
.#{$state}-feedback {
|
|
110
|
+
font-size: 0.6875rem;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Optional Page background
|
|
3
|
+
// Three layers: mesh gradient, technical grid, ambient orbs.
|
|
4
|
+
//
|
|
5
|
+
// Opt-in. Enable it in your entry point:
|
|
6
|
+
//
|
|
7
|
+
// @import 'tiny-essentials/webTemplates/bootstrap/5.3/scss/themes/deepstrap/plugins/background/tiny_gradient_1';
|
|
8
|
+
// @include tiny-gb1-plugin();
|
|
9
|
+
//
|
|
10
|
+
// Then add the class to <body>:
|
|
11
|
+
//
|
|
12
|
+
// <body class="ui-background">
|
|
13
|
+
//
|
|
14
|
+
// Custom selector:
|
|
15
|
+
//
|
|
16
|
+
// @include tiny-gb1-plugin(('selector': '.my-background'));
|
|
17
|
+
//
|
|
18
|
+
// Custom colors: override the `--ui-bg-*` tokens below.
|
|
19
|
+
// =============================================================================
|
|
20
|
+
|
|
21
|
+
@use 'sass:map';
|
|
22
|
+
|
|
23
|
+
:root,
|
|
24
|
+
[data-bs-theme='dark'] {
|
|
25
|
+
--ui-orb-opacity: 1;
|
|
26
|
+
--ui-orb-blur: 48px;
|
|
27
|
+
--ui-mesh-1: 0.16;
|
|
28
|
+
--ui-mesh-2: 0.12;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
[data-bs-theme='light'] {
|
|
32
|
+
--ui-orb-opacity: 0.5;
|
|
33
|
+
--ui-orb-blur: 64px;
|
|
34
|
+
--ui-mesh-1: 0.1;
|
|
35
|
+
--ui-mesh-2: 0.08;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
$background-config: (
|
|
39
|
+
'selector': 'body',
|
|
40
|
+
'grid-size': 48px,
|
|
41
|
+
'grid-mask': 'radial-gradient(ellipse 100% 70% at 50% 0%, #000 30%, transparent 78%)',
|
|
42
|
+
) !default;
|
|
43
|
+
|
|
44
|
+
@mixin tiny-gb1-plugin($config: $background-config) {
|
|
45
|
+
$selector: map.get($config, 'selector');
|
|
46
|
+
$grid-size: map.get($config, 'grid-size');
|
|
47
|
+
$grid-mask: map.get($config, 'grid-mask');
|
|
48
|
+
|
|
49
|
+
#{$selector} {
|
|
50
|
+
position: relative;
|
|
51
|
+
min-height: 100vh;
|
|
52
|
+
background-color: var(--ui-bg-canvas);
|
|
53
|
+
background-image:
|
|
54
|
+
radial-gradient(
|
|
55
|
+
70rem 50rem at 8% -14%,
|
|
56
|
+
rgb(var(--ui-bg-mesh-1) / var(--ui-bg-mesh-1-alpha)),
|
|
57
|
+
transparent 60%
|
|
58
|
+
),
|
|
59
|
+
radial-gradient(
|
|
60
|
+
60rem 44rem at 96% -4%,
|
|
61
|
+
rgb(var(--ui-bg-mesh-2) / var(--ui-bg-mesh-2-alpha)),
|
|
62
|
+
transparent 62%
|
|
63
|
+
),
|
|
64
|
+
radial-gradient(
|
|
65
|
+
50rem 40rem at 50% 120%,
|
|
66
|
+
rgb(var(--ui-bg-mesh-3) / var(--ui-bg-mesh-3-alpha)),
|
|
67
|
+
transparent 70%
|
|
68
|
+
);
|
|
69
|
+
background-attachment: fixed;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
#{$selector}::before {
|
|
73
|
+
position: fixed;
|
|
74
|
+
inset: 0;
|
|
75
|
+
z-index: -2;
|
|
76
|
+
pointer-events: none;
|
|
77
|
+
content: '';
|
|
78
|
+
background-image:
|
|
79
|
+
linear-gradient(var(--ui-bg-grid) 1px, transparent 1px),
|
|
80
|
+
linear-gradient(90deg, var(--ui-bg-grid) 1px, transparent 1px);
|
|
81
|
+
background-size: $grid-size $grid-size;
|
|
82
|
+
mask-image: #{$grid-mask};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
#{$selector}::after {
|
|
86
|
+
position: fixed;
|
|
87
|
+
inset: 0;
|
|
88
|
+
z-index: -1;
|
|
89
|
+
pointer-events: none;
|
|
90
|
+
content: '';
|
|
91
|
+
background:
|
|
92
|
+
radial-gradient(
|
|
93
|
+
28rem 28rem at 12% 8%,
|
|
94
|
+
rgb(var(--ui-bg-orb-1) / var(--ui-bg-orb-1-alpha)),
|
|
95
|
+
transparent 70%
|
|
96
|
+
),
|
|
97
|
+
radial-gradient(
|
|
98
|
+
24rem 24rem at 88% 22%,
|
|
99
|
+
rgb(var(--ui-bg-orb-2) / var(--ui-bg-orb-2-alpha)),
|
|
100
|
+
transparent 70%
|
|
101
|
+
);
|
|
102
|
+
filter: blur(var(--ui-orb-blur));
|
|
103
|
+
opacity: var(--ui-orb-opacity);
|
|
104
|
+
transition: opacity var(--ui-duration) var(--ui-ease);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// ---------------------------------------------------------------------------
|
|
109
|
+
// Default color tokens.
|
|
110
|
+
// Override these in :root or in a scoped selector to recolor the background.
|
|
111
|
+
// ---------------------------------------------------------------------------
|
|
112
|
+
:root {
|
|
113
|
+
--ui-bg-canvas: var(--ui-canvas);
|
|
114
|
+
|
|
115
|
+
--ui-bg-mesh-1: var(--ui-accent-rgb);
|
|
116
|
+
--ui-bg-mesh-1-alpha: var(--ui-mesh-1);
|
|
117
|
+
|
|
118
|
+
--ui-bg-mesh-2: var(--ui-info-rgb);
|
|
119
|
+
--ui-bg-mesh-2-alpha: var(--ui-mesh-2);
|
|
120
|
+
|
|
121
|
+
--ui-bg-mesh-3: var(--ui-accent-rgb);
|
|
122
|
+
--ui-bg-mesh-3-alpha: 0.06;
|
|
123
|
+
|
|
124
|
+
--ui-bg-grid: var(--ui-grid-line);
|
|
125
|
+
|
|
126
|
+
--ui-bg-orb-1: var(--ui-accent-rgb);
|
|
127
|
+
--ui-bg-orb-1-alpha: 0.18;
|
|
128
|
+
|
|
129
|
+
--ui-bg-orb-2: var(--ui-info-rgb);
|
|
130
|
+
--ui-bg-orb-2-alpha: 0.14;
|
|
131
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Pink plugin
|
|
3
|
+
//
|
|
4
|
+
// Self-contained: tokens, buttons, group states, badges, alerts, utilities.
|
|
5
|
+
// Import after `buttons` in `_theme.scss`.
|
|
6
|
+
// =============================================================================
|
|
7
|
+
|
|
8
|
+
@use 'sass:map';
|
|
9
|
+
|
|
10
|
+
// ------------------------------------------------------------------ tokens --
|
|
11
|
+
$pink-tokens: (
|
|
12
|
+
'dark': (
|
|
13
|
+
'base': #ff5c9e,
|
|
14
|
+
'on': #1a0410,
|
|
15
|
+
'emphasis': #ff9ec4,
|
|
16
|
+
'subtle-bg': #2a0f1c,
|
|
17
|
+
'subtle-border': #5c2340,
|
|
18
|
+
),
|
|
19
|
+
'light': (
|
|
20
|
+
'base': #c2185b,
|
|
21
|
+
'on': #ffffff,
|
|
22
|
+
'emphasis': #8a0f40,
|
|
23
|
+
'subtle-bg': #fce4ec,
|
|
24
|
+
'subtle-border': #f4a6c2,
|
|
25
|
+
),
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
:root,
|
|
29
|
+
[data-bs-theme='dark'] {
|
|
30
|
+
@include tone-tokens('pink', map.get($pink-tokens, 'dark'));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
[data-bs-theme='light'] {
|
|
34
|
+
@include tone-tokens('pink', map.get($pink-tokens, 'light'));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// ------------------------------------------------------------------ plugin --
|
|
38
|
+
@include tone-plugin(
|
|
39
|
+
'pink',
|
|
40
|
+
(
|
|
41
|
+
'token': 'pink',
|
|
42
|
+
'on': 'pink',
|
|
43
|
+
)
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
// Form controls: select, checkbox, switch and range.
|
|
47
|
+
@include form-tone-plugin('pink', 'pink', 'pink', form-mark-contrast(#ff5c9e));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var cid = require('
|
|
4
|
-
var sha2 = require('
|
|
3
|
+
var cid = require('multiformats/cid');
|
|
4
|
+
var sha2 = require('multiformats/hashes/sha2');
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Multicodec code for the dag-pb format.
|