@gitbutler/design-core 1.0.3 → 1.2.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.
package/README.md CHANGED
@@ -15,13 +15,13 @@ npm install @gitbutler/design-core
15
15
  Import the design tokens CSS file:
16
16
 
17
17
  ```css
18
- @import '@gitbutler/design-core/tokens';
18
+ @import "@gitbutler/design-core/tokens";
19
19
  ```
20
20
 
21
21
  Or in JavaScript/TypeScript:
22
22
 
23
23
  ```javascript
24
- import '@gitbutler/design-core/tokens';
24
+ import "@gitbutler/design-core/tokens";
25
25
  ```
26
26
 
27
27
  This provides CSS custom properties for colors, spacing, typography, and other design tokens with automatic light/dark mode support.
@@ -31,7 +31,7 @@ This provides CSS custom properties for colors, spacing, typography, and other d
31
31
  Import the raw design tokens data:
32
32
 
33
33
  ```javascript
34
- import tokens from '@gitbutler/design-core/tokens.json';
34
+ import tokens from "@gitbutler/design-core/tokens.json";
35
35
  ```
36
36
 
37
37
  ### Fonts
@@ -39,24 +39,95 @@ import tokens from '@gitbutler/design-core/tokens.json';
39
39
  Import all fonts:
40
40
 
41
41
  ```css
42
- @import '@gitbutler/design-core/fonts';
42
+ @import "@gitbutler/design-core/fonts";
43
43
  ```
44
44
 
45
45
  Or import individual font families:
46
46
 
47
47
  ```css
48
- @import '@gitbutler/design-core/fonts/inter/Inter-Regular.woff2';
49
- @import '@gitbutler/design-core/fonts/geist-mono/GeistMono-Regular.woff2';
50
- @import '@gitbutler/design-core/fonts/but-head/But-Head-Regular.woff2';
51
- @import '@gitbutler/design-core/fonts/pp-editorial/PPEditorialNew-Regular.woff2';
48
+ @import "@gitbutler/design-core/fonts/inter/Inter-Regular.woff2";
49
+ @import "@gitbutler/design-core/fonts/geist-mono/GeistMono-Regular.woff2";
50
+ @import "@gitbutler/design-core/fonts/but-head/But-Head-Regular.woff2";
51
+ @import "@gitbutler/design-core/fonts/pp-editorial/PPEditorialNew-Regular.woff2";
52
52
  ```
53
53
 
54
+ ### Core Styles
55
+
56
+ Import the core CSS styles:
57
+
58
+ ```css
59
+ @import "@gitbutler/design-core/core";
60
+ ```
61
+
62
+ ### Style Utilities
63
+
64
+ Import individual style utilities:
65
+
66
+ ```css
67
+ @import "@gitbutler/design-core/styles"; /* Base styles */
68
+ @import "@gitbutler/design-core/styles/base"; /* Base styles */
69
+ @import "@gitbutler/design-core/styles/reset"; /* CSS reset */
70
+ @import "@gitbutler/design-core/styles/text"; /* Text utilities */
71
+ ```
72
+
73
+ ### Utility Classes
74
+
75
+ Import all utility classes at once:
76
+
77
+ ```css
78
+ @import "@gitbutler/design-core/utility";
79
+ ```
80
+
81
+ Or in JavaScript/TypeScript:
82
+
83
+ ```javascript
84
+ import "@gitbutler/design-core/utility";
85
+ ```
86
+
87
+ Or import individual utility class files:
88
+
89
+ ```css
90
+ @import "@gitbutler/design-core/utility/general"; /* Border radius, colors, borders */
91
+ @import "@gitbutler/design-core/utility/helpers"; /* Scrollbar helpers, stack utilities */
92
+ @import "@gitbutler/design-core/utility/layout"; /* Spacing, positioning, flexbox, overflow, text alignment */
93
+ ```
94
+
95
+ **General utilities** include:
96
+
97
+ - Border radius (`.radius-s`, `.radius-m`, `.radius-ml`, `.radius-l`)
98
+ - Background colors (`.clr-bg-1`, `.clr-bg-2`, `.clr-bg-3` and their muted variants)
99
+ - Borders (`.clr-border-1`, `.clr-border-2`, `.clr-border-3`)
100
+ - Text colors (`.clr-text-1`, `.clr-text-2`, `.clr-text-3`)
101
+
102
+ **Helper utilities** include:
103
+
104
+ - Scrollbar utilities (`.hide-native-scrollbar`, `.scrollbar`)
105
+ - Stack layouts (`.stack-v`, `.stack-h`)
106
+
107
+ **Layout utilities** include:
108
+
109
+ - Spacing (margin, padding, gap in 2px increments from 2px to 48px)
110
+ - Positioning (`.relative`, `.absolute`, `.fixed`, `.sticky`, positioning utilities)
111
+ - Size (`.full-width`, `.full-height`)
112
+ - Flexbox (`.flex`, `.flex-col`, alignment and justify utilities, flex grow/shrink)
113
+ - Overflow (`.overflow-hidden`, `.overflow-auto`, `.overflow-scroll`, `.overflow-visible`)
114
+ - Text alignment (`.text-center`, `.text-left`, `.text-right`, `.text-nowrap`)
115
+
54
116
  ## Available Exports
55
117
 
56
118
  - `@gitbutler/design-core/tokens` - CSS custom properties
57
119
  - `@gitbutler/design-core/tokens.json` - Design tokens as JSON
58
120
  - `@gitbutler/design-core/fonts` - All font CSS declarations
59
121
  - `@gitbutler/design-core/fonts/*` - Individual font files
122
+ - `@gitbutler/design-core/core` - Core CSS styles
123
+ - `@gitbutler/design-core/styles` - Base style utilities
124
+ - `@gitbutler/design-core/styles/base` - Base styles
125
+ - `@gitbutler/design-core/styles/reset` - CSS reset
126
+ - `@gitbutler/design-core/styles/text` - Text utilities
127
+ - `@gitbutler/design-core/utility` - All utility classes (combined)
128
+ - `@gitbutler/design-core/utility/general` - General utility classes (borders, colors)
129
+ - `@gitbutler/design-core/utility/helpers` - Helper utility classes (scrollbar, stacks)
130
+ - `@gitbutler/design-core/utility/layout` - Layout utility classes (spacing, flexbox, positioning)
60
131
 
61
132
  ## Included Fonts
62
133
 
package/core.css ADDED
@@ -0,0 +1,23 @@
1
+ /**
2
+ * GitButler Design Core - Single Import
3
+ *
4
+ * This file provides a convenient single import for both fonts and design tokens.
5
+ *
6
+ * USAGE:
7
+ * Import this file: @import '@gitbutler/design-core/core';
8
+ * Or in JS: import '@gitbutler/design-core/core';
9
+ *
10
+ * INCLUDES:
11
+ * - All font definitions (fonts/fonts.css)
12
+ * - All design tokens (tokens/tokens.css)
13
+ */
14
+
15
+ /* reset */
16
+ @import "./styles/reset.css";
17
+ /* Import design tokens */
18
+ @import "./tokens/tokens.css";
19
+ /* Import font definitions */
20
+ @import "./fonts/fonts.css";
21
+ /* Base styles */
22
+ @import "./styles/base.css";
23
+ @import "./styles/text.css";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitbutler/design-core",
3
- "version": "1.0.3",
3
+ "version": "1.2.0",
4
4
  "type": "module",
5
5
  "description": "Design tokens for GitButler applications",
6
6
  "keywords": [
@@ -19,7 +19,16 @@
19
19
  "./tokens": "./tokens/tokens.css",
20
20
  "./tokens.json": "./tokens/tokens.json",
21
21
  "./fonts": "./fonts/fonts.css",
22
- "./fonts/*": "./fonts/*"
22
+ "./fonts/*": "./fonts/*",
23
+ "./core": "./core.css",
24
+ "./styles": "./styles/base.css",
25
+ "./styles/base": "./styles/base.css",
26
+ "./styles/reset": "./styles/reset.css",
27
+ "./styles/text": "./styles/text.css",
28
+ "./utility": "./utility/utility.css",
29
+ "./utility/general": "./utility/general.css",
30
+ "./utility/helpers": "./utility/helpers.css",
31
+ "./utility/layout": "./utility/layout.min.css"
23
32
  },
24
33
  "scripts": {
25
34
  "build": "npx tz build",
@@ -35,6 +44,9 @@
35
44
  "files": [
36
45
  "tokens/",
37
46
  "fonts/",
47
+ "styles/",
48
+ "utility/",
49
+ "core.css",
38
50
  "README.md"
39
51
  ],
40
52
  "publishConfig": {
@@ -0,0 +1,36 @@
1
+ /**
2
+ * GitButler Base Styles
3
+ *
4
+ * This file contains foundational CSS styles including resets, basic typography,
5
+ * and common element styling that serves as a base for GitButler applications.
6
+ *
7
+ * USAGE:
8
+ * Import this file: @import '@gitbutler/design-core/base';
9
+ * Or in JS: import '@gitbutler/design-core/base';
10
+ */
11
+
12
+ /* CSS Reset and Normalization */
13
+ *,
14
+ *::before,
15
+ *::after {
16
+ box-sizing: border-box;
17
+ }
18
+
19
+ * {
20
+ margin: 0;
21
+ padding: 0;
22
+ }
23
+
24
+ html {
25
+ font-size: 16px;
26
+ line-height: 1.5;
27
+ -webkit-font-smoothing: antialiased;
28
+ -moz-osx-font-smoothing: grayscale;
29
+ text-rendering: optimizeLegibility;
30
+ }
31
+
32
+ body {
33
+ overflow-x: hidden;
34
+ color: var(--clr-text-1);
35
+ font-family: var;
36
+ }
@@ -0,0 +1,244 @@
1
+ /* BOILERPLATE CSS */
2
+ /* reset all styles */
3
+ @layer reset {
4
+ /* base */
5
+ *,
6
+ :after,
7
+ :before {
8
+ box-sizing: border-box;
9
+ border: 0 solid;
10
+ }
11
+
12
+ html {
13
+ overscroll-behavior: none;
14
+ }
15
+
16
+ body {
17
+ margin: 0;
18
+ padding: 0;
19
+ line-height: inherit;
20
+ line-height: inherit;
21
+ font-family:
22
+ -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
23
+ Arial, "Noto Sans", sans-serif;
24
+ }
25
+
26
+ /* elements */
27
+ hr {
28
+ height: 0;
29
+ border-top-width: 1px;
30
+ color: inherit;
31
+ }
32
+
33
+ abbr:where([title]) {
34
+ -webkit-text-decoration: underline dotted;
35
+ text-decoration: underline dotted;
36
+ }
37
+
38
+ h1,
39
+ h2,
40
+ h3,
41
+ h4,
42
+ h5,
43
+ h6 {
44
+ font-weight: inherit;
45
+ font-size: inherit;
46
+ }
47
+
48
+ a {
49
+ color: inherit;
50
+ text-decoration: inherit;
51
+ }
52
+
53
+ b,
54
+ strong {
55
+ font-weight: bolder;
56
+ }
57
+
58
+ code,
59
+ kbd,
60
+ pre,
61
+ samp {
62
+ font-size: 1em;
63
+ font-family:
64
+ Söhne Mono,
65
+ monospace;
66
+ font-variation-settings: normal;
67
+ font-feature-settings: normal;
68
+ }
69
+
70
+ small {
71
+ font-size: 80%;
72
+ }
73
+
74
+ sub,
75
+ sup {
76
+ position: relative;
77
+ font-size: 75%;
78
+ line-height: 0;
79
+ vertical-align: baseline;
80
+ }
81
+
82
+ sub {
83
+ bottom: -0.25em;
84
+ }
85
+
86
+ sup {
87
+ top: -0.5em;
88
+ }
89
+
90
+ table {
91
+ border-color: inherit;
92
+ border-collapse: collapse;
93
+ text-indent: 0;
94
+ }
95
+
96
+ button,
97
+ input,
98
+ optgroup,
99
+ select,
100
+ textarea {
101
+ margin: 0;
102
+ padding: 0;
103
+ color: inherit;
104
+ font-weight: inherit;
105
+ font-size: 100%;
106
+ line-height: inherit;
107
+ font-family: inherit;
108
+ font-variation-settings: inherit;
109
+ font-feature-settings: inherit;
110
+ letter-spacing: inherit;
111
+ }
112
+
113
+ button,
114
+ select {
115
+ text-transform: none;
116
+ }
117
+
118
+ button,
119
+ input:where([type="button"]),
120
+ input:where([type="reset"]),
121
+ input:where([type="submit"]) {
122
+ -webkit-appearance: button;
123
+ background-image: none;
124
+ background-color: transparent;
125
+ }
126
+
127
+ :-moz-focusring {
128
+ outline: auto;
129
+ }
130
+
131
+ :-moz-ui-invalid {
132
+ box-shadow: none;
133
+ }
134
+
135
+ progress {
136
+ vertical-align: baseline;
137
+ }
138
+
139
+ ::-webkit-inner-spin-button,
140
+ ::-webkit-outer-spin-button {
141
+ height: auto;
142
+ }
143
+
144
+ [type="search"] {
145
+ -webkit-appearance: textfield;
146
+ outline-offset: -2px;
147
+ }
148
+
149
+ ::-webkit-search-decoration {
150
+ -webkit-appearance: none;
151
+ }
152
+
153
+ ::-webkit-file-upload-button {
154
+ -webkit-appearance: button;
155
+ font: inherit;
156
+ }
157
+
158
+ summary {
159
+ display: list-item;
160
+ }
161
+
162
+ blockquote,
163
+ dd,
164
+ dl,
165
+ figure,
166
+ h1,
167
+ h2,
168
+ h3,
169
+ h4,
170
+ h5,
171
+ h6,
172
+ hr,
173
+ p,
174
+ pre {
175
+ margin: 0;
176
+ }
177
+
178
+ fieldset {
179
+ margin: 0;
180
+ }
181
+
182
+ fieldset,
183
+ legend {
184
+ padding: 0;
185
+ }
186
+
187
+ menu,
188
+ ol,
189
+ ul {
190
+ margin: 0;
191
+ padding: 0;
192
+ list-style: none;
193
+ }
194
+
195
+ dialog {
196
+ padding: 0;
197
+ }
198
+
199
+ textarea {
200
+ resize: vertical;
201
+ }
202
+
203
+ input::-moz-placeholder,
204
+ textarea::-moz-placeholder {
205
+ color: #9ca3af;
206
+ opacity: 1;
207
+ }
208
+
209
+ input::placeholder,
210
+ textarea::placeholder {
211
+ color: #9ca3af;
212
+ opacity: 1;
213
+ }
214
+
215
+ [role="button"],
216
+ button {
217
+ cursor: pointer;
218
+ }
219
+
220
+ :disabled {
221
+ cursor: default;
222
+ }
223
+
224
+ audio,
225
+ canvas,
226
+ embed,
227
+ iframe,
228
+ img,
229
+ object,
230
+ video {
231
+ display: block;
232
+ vertical-align: middle;
233
+ }
234
+
235
+ img,
236
+ video {
237
+ max-width: 100%;
238
+ height: auto;
239
+ }
240
+
241
+ [hidden] {
242
+ display: none;
243
+ }
244
+ }
@@ -0,0 +1,137 @@
1
+ :root {
2
+ --font-mono: var(--text-fontfamily-mono), monospace;
3
+ --font-default: var(--text-fontfamily-default), sans-serif;
4
+ --font-accent: var(--text-fontfamily-accent), serif;
5
+ }
6
+
7
+ /* text Base Classes */
8
+ .text-9 {
9
+ font-weight: var(--text-weight-regular);
10
+ font-size: 0.563rem;
11
+ line-height: var(--text-lineheight-default);
12
+ font-family: var(--font-default);
13
+ }
14
+
15
+ .text-10 {
16
+ font-weight: var(--text-weight-regular);
17
+ font-size: 0.625rem;
18
+ line-height: var(--text-lineheight-default);
19
+ font-family: var(--font-default);
20
+ }
21
+
22
+ .text-11 {
23
+ font-weight: var(--text-weight-regular);
24
+ font-size: 0.6875rem;
25
+ line-height: var(--text-lineheight-default);
26
+ font-family: var(--font-default);
27
+ }
28
+
29
+ .text-12 {
30
+ font-weight: var(--text-weight-regular);
31
+ font-size: 0.75rem;
32
+ line-height: var(--text-lineheight-default);
33
+ font-family: var(--font-default);
34
+ }
35
+
36
+ .text-13 {
37
+ font-weight: var(--text-weight-regular);
38
+ font-size: 0.8125rem;
39
+ line-height: var(--text-lineheight-default);
40
+ font-family: var(--font-default);
41
+ }
42
+
43
+ .text-14 {
44
+ font-weight: var(--text-weight-regular);
45
+ font-size: 0.875rem;
46
+ line-height: var(--text-lineheight-default);
47
+ font-family: var(--font-default);
48
+ }
49
+
50
+ .text-15 {
51
+ font-weight: var(--text-weight-regular);
52
+ font-size: 0.938rem;
53
+ line-height: var(--text-lineheight-default);
54
+ font-family: var(--font-default);
55
+ }
56
+
57
+ .text-16 {
58
+ font-weight: var(--text-weight-regular);
59
+ font-size: 1rem;
60
+ line-height: var(--text-lineheight-default);
61
+ font-family: var(--font-default);
62
+ }
63
+
64
+ .text-18 {
65
+ font-weight: var(--text-weight-regular);
66
+ font-size: 1.125rem;
67
+ line-height: var(--text-lineheight-default);
68
+ font-family: var(--font-default);
69
+ }
70
+
71
+ /* text Head Classes */
72
+ .text-head-20 {
73
+ font-weight: var(--text-weight-bold);
74
+ font-size: 1.25rem;
75
+ line-height: var(--text-lineheight-default);
76
+ font-family: var(--font-default);
77
+ }
78
+
79
+ .text-head-22 {
80
+ font-weight: var(--text-weight-bold);
81
+ font-size: 1.375rem;
82
+ line-height: var(--text-lineheight-default);
83
+ font-family: var(--font-default);
84
+ }
85
+
86
+ .text-head-24 {
87
+ font-weight: var(--text-weight-bold);
88
+ font-size: 1.5rem;
89
+ line-height: var(--text-lineheight-default);
90
+ font-family: var(--font-default);
91
+ }
92
+
93
+ /* Serif Classes */
94
+ .text-serif-42 {
95
+ font-weight: 400;
96
+ font-size: 2.625rem;
97
+ line-height: var(--text-lineheight-accent);
98
+ font-family: var(--font-accent);
99
+ }
100
+
101
+ .text-serif-32 {
102
+ font-weight: 400;
103
+ font-size: 2rem;
104
+ line-height: var(--text-lineheight-accent);
105
+ font-family: var(--font-accent);
106
+ }
107
+
108
+ /* MODIFIERS */
109
+
110
+ .text-body {
111
+ line-height: var(--text-lineheight-body);
112
+ }
113
+
114
+ .text-semibold {
115
+ font-weight: var(--text-weight-semibold);
116
+ }
117
+
118
+ .text-bold {
119
+ font-weight: var(--text-weight-bold);
120
+ }
121
+
122
+ .text-monospace {
123
+ font-family: var(--fontfamily-mono);
124
+ }
125
+
126
+ .text-balance {
127
+ text-wrap: balance;
128
+ }
129
+
130
+ .text-pre {
131
+ white-space: pre-wrap;
132
+ word-break: break-word;
133
+ }
134
+
135
+ .text-italic {
136
+ font-style: italic;
137
+ }
@@ -0,0 +1,55 @@
1
+ /* Border radius */
2
+ .radius-s {
3
+ border-radius: var(--radius-s);
4
+ }
5
+ .radius-m {
6
+ border-radius: var(--radius-m);
7
+ }
8
+ .radius-ml {
9
+ border-radius: var(--radius-ml);
10
+ }
11
+ .radius-l {
12
+ border-radius: var(--radius-l);
13
+ }
14
+
15
+ /* Background colors */
16
+ .clr-bg-1 {
17
+ background-color: var(--clr-bg-1);
18
+ }
19
+ .clr-bg-1-muted {
20
+ background-color: var(--clr-bg-1-muted);
21
+ }
22
+ .clr-bg-2 {
23
+ background-color: var(--clr-bg-2);
24
+ }
25
+ .clr-bg-2-muted {
26
+ background-color: var(--clr-bg-2-muted);
27
+ }
28
+ .clr-bg-3 {
29
+ background-color: var(--clr-bg-3);
30
+ }
31
+ .clr-bg-3-muted {
32
+ background-color: var(--clr-bg-3-muted);
33
+ }
34
+
35
+ /* Borders */
36
+ .clr-border-1 {
37
+ border: 1px solid var(--clr-border-1);
38
+ }
39
+ .clr-border-2 {
40
+ border: 1px solid var(--clr-border-2);
41
+ }
42
+ .clr-border-3 {
43
+ border: 1px solid var(--clr-border-3);
44
+ }
45
+
46
+ /* Text colors */
47
+ .clr-text-1 {
48
+ color: var(--clr-text-1);
49
+ }
50
+ .clr-text-2 {
51
+ color: var(--clr-text-2);
52
+ }
53
+ .clr-text-3 {
54
+ color: var(--clr-text-3);
55
+ }
@@ -0,0 +1,205 @@
1
+ /* scrollbar helpers */
2
+ .hide-native-scrollbar {
3
+ -ms-overflow-style: none;
4
+ scrollbar-width: none;
5
+
6
+ &::-webkit-scrollbar {
7
+ display: none;
8
+ }
9
+ }
10
+
11
+ /* custom scrollbar */
12
+ .scrollbar,
13
+ pre {
14
+ &::-webkit-scrollbar {
15
+ width: 14px;
16
+ background-color: transaparent;
17
+ }
18
+
19
+ &::-webkit-scrollbar-track {
20
+ background-color: transaparent;
21
+ }
22
+
23
+ &::-webkit-scrollbar-thumb {
24
+ border: 4px solid rgba(0, 0, 0, 0);
25
+ border-radius: 12px;
26
+ background-clip: padding-box;
27
+ background-color: var(--clr-border-1);
28
+ opacity: 0.3;
29
+ }
30
+
31
+ &::-webkit-scrollbar-thumb:hover {
32
+ opacity: 0.8;
33
+ }
34
+
35
+ &::-webkit-scrollbar-button {
36
+ display: none;
37
+ }
38
+
39
+ &::-webkit-scrollbar-corner {
40
+ background-color: transparent;
41
+ }
42
+ }
43
+
44
+ .stack-v {
45
+ display: flex;
46
+ flex-direction: column;
47
+ }
48
+
49
+ .stack-h {
50
+ display: flex;
51
+ flex-direction: row;
52
+ }
53
+
54
+ .truncate {
55
+ overflow: hidden;
56
+ text-overflow: ellipsis;
57
+ white-space: nowrap;
58
+ }
59
+
60
+ .no-select {
61
+ cursor: default;
62
+ user-select: none;
63
+ }
64
+
65
+ .hide-when-empty {
66
+ &:empty {
67
+ display: none;
68
+ }
69
+ }
70
+
71
+ .no-pointer-events {
72
+ pointer-events: none;
73
+ }
74
+
75
+ .pointer-events {
76
+ pointer-events: auto;
77
+ }
78
+
79
+ .underline {
80
+ text-decoration: underline;
81
+ }
82
+
83
+ .underline-dotted {
84
+ text-decoration: underline dotted;
85
+ }
86
+
87
+ .underline,
88
+ .underline-dotted {
89
+ text-underline-offset: 3px;
90
+ }
91
+
92
+ .capitalize {
93
+ display: inline-block;
94
+ }
95
+ .capitalize:first-letter {
96
+ text-transform: capitalize;
97
+ }
98
+
99
+ /* OPACITY */
100
+ .op-10 {
101
+ opacity: 0.1;
102
+ }
103
+ .op-20 {
104
+ opacity: 0.2;
105
+ }
106
+ .op-30 {
107
+ opacity: 0.3;
108
+ }
109
+ .op-40 {
110
+ opacity: 0.4;
111
+ }
112
+ .op-50 {
113
+ opacity: 0.5;
114
+ }
115
+ .op-60 {
116
+ opacity: 0.6;
117
+ }
118
+ .op-70 {
119
+ opacity: 0.7;
120
+ }
121
+ .op-80 {
122
+ opacity: 0.8;
123
+ }
124
+ .op-90 {
125
+ opacity: 0.9;
126
+ }
127
+
128
+ /* ANIMATION */
129
+
130
+ .wiggle-animation {
131
+ animation: wiggle-animation 0.35s forwards;
132
+ }
133
+
134
+ @keyframes wiggle-animation {
135
+ 0% {
136
+ transform: translateX(-3px);
137
+ }
138
+ 25% {
139
+ transform: translateX(3px);
140
+ }
141
+ 50% {
142
+ transform: translateX(-2px);
143
+ }
144
+ 75% {
145
+ transform: translateX(2px);
146
+ }
147
+ 100% {
148
+ transform: translateX(0);
149
+ }
150
+ }
151
+
152
+ .highlight-animation {
153
+ animation: highlight-animation 0.5s forwards;
154
+ }
155
+
156
+ @keyframes highlight-animation {
157
+ 0% {
158
+ transform: translate(0, 0) rotate(0deg);
159
+ box-shadow: 0 0 0 0
160
+ color-mix(in srgb, var(--clr-theme-pop-element), transparent, 0.5);
161
+ }
162
+ 12.5% {
163
+ transform: translate(-1px, -1px) rotate(-0.5deg);
164
+ box-shadow: 0 0 0 1px var(--clr-theme-pop-element);
165
+ }
166
+ 25% {
167
+ transform: translate(1px, 0px) rotate(0.5deg);
168
+ box-shadow: 0 0 0 1.5px var(--clr-theme-pop-element);
169
+ }
170
+ 37.5% {
171
+ transform: translate(-1px, 1px) rotate(-0.3deg);
172
+ box-shadow: 0 0 0 2px var(--clr-theme-pop-element);
173
+ }
174
+ 50% {
175
+ transform: translate(1px, -1px) rotate(0.3deg);
176
+ box-shadow: 0 0 0 2px var(--clr-theme-pop-element);
177
+ }
178
+ 62.5% {
179
+ transform: translate(-1px, 0px) rotate(-0.2deg);
180
+ box-shadow: 0 0 0 1.5px var(--clr-theme-pop-element);
181
+ }
182
+ 75% {
183
+ transform: translate(1px, 1px) rotate(0.2deg);
184
+ box-shadow: 0 0 0 1px var(--clr-theme-pop-element);
185
+ }
186
+ 87.5% {
187
+ transform: translate(0px, -1px) rotate(-0.1deg);
188
+ box-shadow: 0 0 0 0.5px var(--clr-theme-pop-element);
189
+ }
190
+ 100% {
191
+ transform: translate(0, 0) rotate(0deg);
192
+ box-shadow: 0 0 0 0
193
+ color-mix(in srgb, var(--clr-theme-pop-element), transparent, 0.5);
194
+ }
195
+ }
196
+
197
+ /* ACCESSIBILITY */
198
+ .focus-state {
199
+ outline: none;
200
+ outline-offset: 2px;
201
+
202
+ &:focus-visible {
203
+ outline: 0.094rem solid var(--focus-color);
204
+ }
205
+ }
@@ -0,0 +1 @@
1
+ /*Spasing*/.gap-2{gap:2px;}.p-2{padding:2px;}.p-l-2{padding-left:2px;}.p-r-2{padding-right:2px;}.p-t-2{padding-top:2px;}.p-b-2{padding-bottom:2px;}.m-2{margin:2px;}.m-l-2{margin-left:2px;}.m-r-2{margin-right:2px;}.m-t-2{margin-top:2px;}.m-b-2{margin-bottom:2px;}.gap-4{gap:4px;}.p-4{padding:4px;}.p-l-4{padding-left:4px;}.p-r-4{padding-right:4px;}.p-t-4{padding-top:4px;}.p-b-4{padding-bottom:4px;}.m-4{margin:4px;}.m-l-4{margin-left:4px;}.m-r-4{margin-right:4px;}.m-t-4{margin-top:4px;}.m-b-4{margin-bottom:4px;}.gap-6{gap:6px;}.p-6{padding:6px;}.p-l-6{padding-left:6px;}.p-r-6{padding-right:6px;}.p-t-6{padding-top:6px;}.p-b-6{padding-bottom:6px;}.m-6{margin:6px;}.m-l-6{margin-left:6px;}.m-r-6{margin-right:6px;}.m-t-6{margin-top:6px;}.m-b-6{margin-bottom:6px;}.gap-8{gap:8px;}.p-8{padding:8px;}.p-l-8{padding-left:8px;}.p-r-8{padding-right:8px;}.p-t-8{padding-top:8px;}.p-b-8{padding-bottom:8px;}.m-8{margin:8px;}.m-l-8{margin-left:8px;}.m-r-8{margin-right:8px;}.m-t-8{margin-top:8px;}.m-b-8{margin-bottom:8px;}.gap-10{gap:10px;}.p-10{padding:10px;}.p-l-10{padding-left:10px;}.p-r-10{padding-right:10px;}.p-t-10{padding-top:10px;}.p-b-10{padding-bottom:10px;}.m-10{margin:10px;}.m-l-10{margin-left:10px;}.m-r-10{margin-right:10px;}.m-t-10{margin-top:10px;}.m-b-10{margin-bottom:10px;}.gap-12{gap:12px;}.p-12{padding:12px;}.p-l-12{padding-left:12px;}.p-r-12{padding-right:12px;}.p-t-12{padding-top:12px;}.p-b-12{padding-bottom:12px;}.m-12{margin:12px;}.m-l-12{margin-left:12px;}.m-r-12{margin-right:12px;}.m-t-12{margin-top:12px;}.m-b-12{margin-bottom:12px;}.gap-14{gap:14px;}.p-14{padding:14px;}.p-l-14{padding-left:14px;}.p-r-14{padding-right:14px;}.p-t-14{padding-top:14px;}.p-b-14{padding-bottom:14px;}.m-14{margin:14px;}.m-l-14{margin-left:14px;}.m-r-14{margin-right:14px;}.m-t-14{margin-top:14px;}.m-b-14{margin-bottom:14px;}.gap-16{gap:16px;}.p-16{padding:16px;}.p-l-16{padding-left:16px;}.p-r-16{padding-right:16px;}.p-t-16{padding-top:16px;}.p-b-16{padding-bottom:16px;}.m-16{margin:16px;}.m-l-16{margin-left:16px;}.m-r-16{margin-right:16px;}.m-t-16{margin-top:16px;}.m-b-16{margin-bottom:16px;}.gap-20{gap:20px;}.p-20{padding:20px;}.p-l-20{padding-left:20px;}.p-r-20{padding-right:20px;}.p-t-20{padding-top:20px;}.p-b-20{padding-bottom:20px;}.m-20{margin:20px;}.m-l-20{margin-left:20px;}.m-r-20{margin-right:20px;}.m-t-20{margin-top:20px;}.m-b-20{margin-bottom:20px;}.gap-24{gap:24px;}.p-24{padding:24px;}.p-l-24{padding-left:24px;}.p-r-24{padding-right:24px;}.p-t-24{padding-top:24px;}.p-b-24{padding-bottom:24px;}.m-24{margin:24px;}.m-l-24{margin-left:24px;}.m-r-24{margin-right:24px;}.m-t-24{margin-top:24px;}.m-b-24{margin-bottom:24px;}.gap-28{gap:28px;}.p-28{padding:28px;}.p-l-28{padding-left:28px;}.p-r-28{padding-right:28px;}.p-t-28{padding-top:28px;}.p-b-28{padding-bottom:28px;}.m-28{margin:28px;}.m-l-28{margin-left:28px;}.m-r-28{margin-right:28px;}.m-t-28{margin-top:28px;}.m-b-28{margin-bottom:28px;}.gap-32{gap:32px;}.p-32{padding:32px;}.p-l-32{padding-left:32px;}.p-r-32{padding-right:32px;}.p-t-32{padding-top:32px;}.p-b-32{padding-bottom:32px;}.m-32{margin:32px;}.m-l-32{margin-left:32px;}.m-r-32{margin-right:32px;}.m-t-32{margin-top:32px;}.m-b-32{margin-bottom:32px;}.gap-36{gap:36px;}.p-36{padding:36px;}.p-l-36{padding-left:36px;}.p-r-36{padding-right:36px;}.p-t-36{padding-top:36px;}.p-b-36{padding-bottom:36px;}.m-36{margin:36px;}.m-l-36{margin-left:36px;}.m-r-36{margin-right:36px;}.m-t-36{margin-top:36px;}.m-b-36{margin-bottom:36px;}.gap-40{gap:40px;}.p-40{padding:40px;}.p-l-40{padding-left:40px;}.p-r-40{padding-right:40px;}.p-t-40{padding-top:40px;}.p-b-40{padding-bottom:40px;}.m-40{margin:40px;}.m-l-40{margin-left:40px;}.m-r-40{margin-right:40px;}.m-t-40{margin-top:40px;}.m-b-40{margin-bottom:40px;}.gap-44{gap:44px;}.p-44{padding:44px;}.p-l-44{padding-left:44px;}.p-r-44{padding-right:44px;}.p-t-44{padding-top:44px;}.p-b-44{padding-bottom:44px;}.m-44{margin:44px;}.m-l-44{margin-left:44px;}.m-r-44{margin-right:44px;}.m-t-44{margin-top:44px;}.m-b-44{margin-bottom:44px;}.gap-48{gap:48px;}.p-48{padding:48px;}.p-l-48{padding-left:48px;}.p-r-48{padding-right:48px;}.p-t-48{padding-top:48px;}.p-b-48{padding-bottom:48px;}.m-48{margin:48px;}.m-l-48{margin-left:48px;}.m-r-48{margin-right:48px;}.m-t-48{margin-top:48px;}.m-b-48{margin-bottom:48px;}/*Position*/.relative{position:relative;}.absolute{position:absolute;}.fixed{position:fixed;}.sticky{position:sticky;}.top-0{top:0;}.bottom-0{bottom:0;}.left-0{left:0;}.right-0{right:0;}/*Size*/.full-width{width:100%;}.full-height{height:100%;}/*Flexbox*/.flex{display:flex;}.flex-col{flex-direction:column;}.items-center{align-items:center;}.justify-center{justify-content:center;}.justify-between{justify-content:space-between;}.justify-end{justify-content:flex-end;}.full-width{width:100%;}.full-height{height:100%;}.flex-1{flex:1;}.flex-2{flex:2;}.flex-3{flex:3;}.flex-4{flex:4;}.flex-5{flex:5;}.flex-shrink-0{flex-shrink:0;}.flex-wrap{flex-wrap:wrap;}.flex-nowrap{flex-wrap:nowrap;}.grow{flex-grow:1;}/*Overflow*/.overflow-hidden{overflow:hidden;}.overflow-auto{overflow:auto;}.overflow-scroll{overflow:scroll;}.overflow-visible{overflow:visible;}/*Text*/.text-center{text-align:center;}.text-left{text-align:left;}.text-right{text-align:right;}.text-nowrap{white-space:nowrap;}
@@ -0,0 +1,3 @@
1
+ @import "./general.css";
2
+ @import "./helpers.css";
3
+ @import "./layout.min.css";