@ibis-design/svelte 0.6.0 → 0.7.1
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 +24 -39
- package/dist/components/buttons/Button.svelte +1 -1
- package/dist/components/buttons/Button.svelte.d.ts +1 -1
- package/dist/components/buttons/DropdownButton.svelte +1 -1
- package/dist/components/buttons/DropdownButton.svelte.d.ts +1 -1
- package/dist/components/buttons/PillTab.svelte +1 -1
- package/dist/components/buttons/PillTab.svelte.d.ts +1 -1
- package/dist/components/containers/Banner.svelte +1 -1
- package/dist/components/containers/Banner.svelte.d.ts +1 -1
- package/dist/components/containers/Card.svelte +2 -2
- package/dist/components/containers/TipIndicator.svelte +1 -1
- package/dist/components/containers/TipIndicator.svelte.d.ts +1 -1
- package/dist/components/containers/Toaster.svelte +1 -1
- package/dist/components/containers/Toaster.svelte.d.ts +1 -1
- package/dist/components/inputs/Checkbox.svelte +1 -1
- package/dist/components/inputs/Checkbox.svelte.d.ts +1 -1
- package/dist/components/inputs/Chips.svelte +1 -1
- package/dist/components/inputs/Chips.svelte.d.ts +1 -1
- package/dist/components/inputs/Dropdown.svelte +1 -1
- package/dist/components/inputs/Dropdown.svelte.d.ts +1 -1
- package/dist/components/inputs/Radio.svelte +1 -1
- package/dist/components/inputs/Radio.svelte.d.ts +1 -1
- package/dist/components/inputs/Switch.svelte +1 -1
- package/dist/components/inputs/Switch.svelte.d.ts +1 -1
- package/dist/components/inputs/TextArea.svelte +1 -1
- package/dist/components/inputs/TextArea.svelte.d.ts +1 -1
- package/dist/components/inputs/TextInput.svelte +1 -1
- package/dist/components/inputs/TextInput.svelte.d.ts +1 -1
- package/dist/components/inputs/TextLink.svelte +1 -1
- package/dist/components/inputs/TextLink.svelte.d.ts +1 -1
- package/dist/layouts/AppLayout.svelte +2 -2
- package/dist/layouts/AuthLayout.svelte +2 -2
- package/dist/layouts/DashboardLayout.svelte +2 -2
- package/package.json +49 -49
- package/dist/components/buttons/button.css +0 -193
- package/dist/components/buttons/dropdownButton.css +0 -82
- package/dist/components/buttons/pillTab.css +0 -59
- package/dist/components/containers/banner.css +0 -155
- package/dist/components/containers/tipIndicator.css +0 -79
- package/dist/components/containers/toaster.css +0 -137
- package/dist/components/containers/tooltip.css +0 -0
- package/dist/components/inputs/checkbox.css +0 -103
- package/dist/components/inputs/chips.css +0 -76
- package/dist/components/inputs/dropdown.css +0 -106
- package/dist/components/inputs/radio.css +0 -108
- package/dist/components/inputs/switch.css +0 -68
- package/dist/components/inputs/textInput.css +0 -152
- package/dist/components/inputs/textarea.css +0 -91
- package/dist/components/inputs/textlink.css +0 -163
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ Svelte 5 component library for the IBIS design system. Provides primitives (Butt
|
|
|
5
5
|
## Requirements
|
|
6
6
|
|
|
7
7
|
- **Svelte 5** (runes and snippets; no slots).
|
|
8
|
-
- **@ibis-design/css** — design tokens.
|
|
8
|
+
- **@ibis-design/css** — design tokens. Load the stylesheet once and set `data-theme` on `<html>` (`ib-light`, `ib-dark`, `alc-light`, `alc-dark`).
|
|
9
9
|
|
|
10
10
|
## Installation
|
|
11
11
|
|
|
@@ -15,16 +15,32 @@ npm install @ibis-design/svelte @ibis-design/css
|
|
|
15
15
|
|
|
16
16
|
## Token CSS
|
|
17
17
|
|
|
18
|
-
Import
|
|
18
|
+
Import tokens and set the theme on the document root:
|
|
19
19
|
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
import '@ibis-design/css';
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
```svelte
|
|
21
|
+
<script>
|
|
22
|
+
import '@ibis-design/css';
|
|
23
|
+
|
|
24
|
+
if (typeof document !== 'undefined') {
|
|
25
|
+
document.documentElement.dataset.theme = 'ib-light'; // or alc-dark, etc.
|
|
26
|
+
}
|
|
27
|
+
</script>
|
|
25
28
|
```
|
|
26
29
|
|
|
27
|
-
Without
|
|
30
|
+
Without the CSS import and `data-theme`, components will not resolve design-system variables.
|
|
31
|
+
|
|
32
|
+
### Canonical variable names
|
|
33
|
+
|
|
34
|
+
Use semantic tokens from the active theme, for example:
|
|
35
|
+
|
|
36
|
+
- `--font-size-body-sm` (not legacy `normal-text` names)
|
|
37
|
+
- `--color-brand-secondary` for secondary actions
|
|
38
|
+
- `--shadow-focus-default` for focus rings
|
|
39
|
+
- `--border-radius-md`, `--border-color-button`
|
|
40
|
+
|
|
41
|
+
### Component styles
|
|
42
|
+
|
|
43
|
+
Svelte components load their presentation CSS from `@ibis-design/css` automatically. You do not need a separate component CSS import unless you use `.ibis-*` class names outside these components (see [@ibis-design/css](https://www.npmjs.com/package/@ibis-design/css) component entry points).
|
|
28
44
|
|
|
29
45
|
## Usage
|
|
30
46
|
|
|
@@ -113,34 +129,3 @@ With inline snippets:
|
|
|
113
129
|
- **Components:** `Button`, `Card`, `AuthLayout`, `AppLayout`, `DashboardLayout`
|
|
114
130
|
- **Types:** `ButtonVariant`, `ButtonSize`, `AuthLayoutProps`, `AppLayoutProps`, `DashboardLayoutProps` (from `@ibis-design/svelte`)
|
|
115
131
|
|
|
116
|
-
## Build
|
|
117
|
-
|
|
118
|
-
This package is built with **`@sveltejs/package`** (`svelte-package`), the supported Svelte library pipeline. It preprocesses Svelte, transpiles TypeScript, and emits **`.d.ts` next to outputs** so consumers get correct component prop types (not a separate Vite “library mode” + `vite-plugin-dts` flow).
|
|
119
|
-
|
|
120
|
-
From the package directory:
|
|
121
|
-
|
|
122
|
-
```bash
|
|
123
|
-
npm run build
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
This runs `svelte-kit sync` (generates `.svelte-kit` types for the minimal Kit shell) then `svelte-package`, writing output to `dist/`.
|
|
127
|
-
|
|
128
|
-
Watch mode during development:
|
|
129
|
-
|
|
130
|
-
```bash
|
|
131
|
-
npm run dev
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
From the monorepo root:
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
npm run build -w @ibis-design/svelte
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
## Type checking
|
|
141
|
-
|
|
142
|
-
```bash
|
|
143
|
-
npm run check
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
Runs `svelte-kit sync` then `svelte-check` with the package `tsconfig.json`.
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
|
|
24
24
|
<style>
|
|
25
25
|
.ibis-card {
|
|
26
|
-
background-color: var(--color-backgrounds-classic-
|
|
26
|
+
background-color: var(--color-backgrounds-classic-light);
|
|
27
27
|
border-radius: var(--border-radius-md);
|
|
28
28
|
box-shadow: var(--shadow-default);
|
|
29
29
|
padding: var(--spacing-4);
|
|
30
30
|
font-family: var(--font-family-sans);
|
|
31
|
-
font-size: var(--font-size-
|
|
31
|
+
font-size: var(--font-size-body-md);
|
|
32
32
|
line-height: var(--line-height-normal);
|
|
33
33
|
}
|
|
34
34
|
</style>
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
min-height: 100vh;
|
|
46
46
|
display: flex;
|
|
47
47
|
flex-direction: column;
|
|
48
|
-
background-color: var(--color-backgrounds-classic-
|
|
48
|
+
background-color: var(--color-backgrounds-classic-light);
|
|
49
49
|
font-family: var(--font-family-sans);
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
flex: 0 0 auto;
|
|
78
78
|
padding: var(--spacing-4);
|
|
79
79
|
border-top: var(--border-width-thin) solid var(--color-neutral-200);
|
|
80
|
-
font-size: var(--font-size-
|
|
80
|
+
font-size: var(--font-size-body-sm);
|
|
81
81
|
color: var(--color-neutral-600);
|
|
82
82
|
}
|
|
83
83
|
</style>
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
align-items: center;
|
|
42
42
|
justify-content: center;
|
|
43
43
|
padding: var(--spacing-6);
|
|
44
|
-
background-color: var(--color-
|
|
44
|
+
background-color: var(--color-white);
|
|
45
45
|
font-family: var(--font-family-sans);
|
|
46
46
|
}
|
|
47
47
|
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
|
|
58
58
|
.ibis-auth-layout__footer {
|
|
59
59
|
margin-top: var(--spacing-8);
|
|
60
|
-
font-size: var(--font-size-
|
|
60
|
+
font-size: var(--font-size-body-sm);
|
|
61
61
|
color: var(--color-neutral-600);
|
|
62
62
|
}
|
|
63
63
|
</style>
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
min-height: 100vh;
|
|
46
46
|
display: flex;
|
|
47
47
|
flex-direction: column;
|
|
48
|
-
background-color: var(--color-backgrounds-classic-
|
|
48
|
+
background-color: var(--color-backgrounds-classic-light);
|
|
49
49
|
font-family: var(--font-family-sans);
|
|
50
50
|
}
|
|
51
51
|
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
flex: 0 0 auto;
|
|
83
83
|
padding: var(--spacing-3);
|
|
84
84
|
border-top: var(--border-width-thin) solid var(--color-neutral-200);
|
|
85
|
-
font-size: var(--font-size-
|
|
85
|
+
font-size: var(--font-size-body-xs);
|
|
86
86
|
color: var(--color-neutral-600);
|
|
87
87
|
}
|
|
88
88
|
</style>
|
package/package.json
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@ibis-design/svelte",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Svelte component library for the IBIS design system.",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "./dist/index.js",
|
|
7
|
-
"module": "./dist/index.js",
|
|
8
|
-
"types": "./dist/index.d.ts",
|
|
9
|
-
"svelte": "./dist/index.js",
|
|
10
|
-
"exports": {
|
|
11
|
-
".": {
|
|
12
|
-
"types": "./dist/index.d.ts",
|
|
13
|
-
"svelte": "./dist/index.js",
|
|
14
|
-
"import": "./dist/index.js",
|
|
15
|
-
"default": "./dist/index.js"
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"files": [
|
|
19
|
-
"dist"
|
|
20
|
-
],
|
|
21
|
-
"sideEffects": [
|
|
22
|
-
"**/*.css"
|
|
23
|
-
],
|
|
24
|
-
"peerDependencies": {
|
|
25
|
-
"@ibis-design/css": "^0.
|
|
26
|
-
"svelte": "^5.54.0"
|
|
27
|
-
},
|
|
28
|
-
"devDependencies": {
|
|
29
|
-
"@ibis-design/css": "0.
|
|
30
|
-
"@sveltejs/adapter-auto": "7.0.1",
|
|
31
|
-
"@sveltejs/kit": "2.
|
|
32
|
-
"@sveltejs/package": "2.5.7",
|
|
33
|
-
"@sveltejs/vite-plugin-svelte": "^7.1.2",
|
|
34
|
-
"@types/node": "25.
|
|
35
|
-
"svelte": "5.55.
|
|
36
|
-
"svelte-check": "^4.4.8",
|
|
37
|
-
"typescript": "^5.9.3",
|
|
38
|
-
"vite": "^8.0.
|
|
39
|
-
},
|
|
40
|
-
"scripts": {
|
|
41
|
-
"build": "svelte-kit sync && svelte-package",
|
|
42
|
-
"prepublishOnly": "npm run build",
|
|
43
|
-
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
44
|
-
"dev": "svelte-package -w"
|
|
45
|
-
},
|
|
46
|
-
"dependencies": {
|
|
47
|
-
"@solar-icons/svelte": "^1.1.
|
|
48
|
-
}
|
|
49
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@ibis-design/svelte",
|
|
3
|
+
"version": "0.7.1",
|
|
4
|
+
"description": "Svelte component library for the IBIS design system.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"svelte": "./dist/index.js",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"svelte": "./dist/index.js",
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"default": "./dist/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"files": [
|
|
19
|
+
"dist"
|
|
20
|
+
],
|
|
21
|
+
"sideEffects": [
|
|
22
|
+
"**/*.css"
|
|
23
|
+
],
|
|
24
|
+
"peerDependencies": {
|
|
25
|
+
"@ibis-design/css": "^0.7.1",
|
|
26
|
+
"svelte": "^5.54.0"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@ibis-design/css": "0.7.1",
|
|
30
|
+
"@sveltejs/adapter-auto": "7.0.1",
|
|
31
|
+
"@sveltejs/kit": "2.60.1",
|
|
32
|
+
"@sveltejs/package": "2.5.7",
|
|
33
|
+
"@sveltejs/vite-plugin-svelte": "^7.1.2",
|
|
34
|
+
"@types/node": "25.9.0",
|
|
35
|
+
"svelte": "5.55.8",
|
|
36
|
+
"svelte-check": "^4.4.8",
|
|
37
|
+
"typescript": "^5.9.3",
|
|
38
|
+
"vite": "^8.0.13"
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"build": "svelte-kit sync && svelte-package",
|
|
42
|
+
"prepublishOnly": "npm run build",
|
|
43
|
+
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
|
44
|
+
"dev": "svelte-package -w"
|
|
45
|
+
},
|
|
46
|
+
"dependencies": {
|
|
47
|
+
"@solar-icons/svelte": "^1.1.1"
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
.ibis-button {
|
|
2
|
-
font-family: var(--font-family-sans);
|
|
3
|
-
font-weight: var(--font-weight-normal);
|
|
4
|
-
border: var(--border-width-default) solid transparent;
|
|
5
|
-
cursor: pointer;
|
|
6
|
-
transition:
|
|
7
|
-
filter var(--transition-duration-fast) var(--transition-timing-default),
|
|
8
|
-
transform var(--transition-duration-fast) var(--transition-timing-default),
|
|
9
|
-
box-shadow var(--transition-duration-fast) var(--transition-timing-default);
|
|
10
|
-
display: inline-flex;
|
|
11
|
-
align-items: center;
|
|
12
|
-
justify-content: center;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.ibis-button :global(svg) {
|
|
16
|
-
width: 1em;
|
|
17
|
-
height: 1em;
|
|
18
|
-
display: inline-block;
|
|
19
|
-
vertical-align: middle;
|
|
20
|
-
gap: var(--spacing-1);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/* Content Layout */
|
|
24
|
-
.ibis-button__content {
|
|
25
|
-
display: inline-flex;
|
|
26
|
-
align-items: center;
|
|
27
|
-
justify-content: center;
|
|
28
|
-
gap: var(--spacing-1);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
.ibis-button__content--hidden {
|
|
32
|
-
visibility: hidden;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/* Icon Only */
|
|
36
|
-
.ibis-button--icon-only {
|
|
37
|
-
padding: var(--spacing-2);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.ibis-button--icon-only .ibis-button__content {
|
|
41
|
-
gap: 0;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/* Disabled State */
|
|
45
|
-
.ibis-button:disabled {
|
|
46
|
-
opacity: var(--opacity-disabled);
|
|
47
|
-
cursor: not-allowed;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/* Loading State */
|
|
51
|
-
.ibis-button--loading {
|
|
52
|
-
position: relative;
|
|
53
|
-
cursor: not-allowed;
|
|
54
|
-
pointer-events: none;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/* Primary Variant */
|
|
58
|
-
.ibis-button--primary {
|
|
59
|
-
background: linear-gradient(180deg, #9665df 0%, #7945c8 100%); /* Hardcoded */
|
|
60
|
-
color: var(--color-white);
|
|
61
|
-
|
|
62
|
-
box-shadow: var(--component-button-primary-default-shadow);
|
|
63
|
-
border: 0.5px solid #bd91ff; /* Hardcoded */
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
.ibis-button--primary:not(:disabled):hover,
|
|
67
|
-
.ibis-button--primary:not(:disabled):active {
|
|
68
|
-
box-shadow: none;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
.ibis-button--primary:not(:disabled):hover {
|
|
72
|
-
background: var(--color-primary-800);
|
|
73
|
-
border-color: none;
|
|
74
|
-
border-width: 0.7 px; /* Hardcoded */
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.ibis-button--primary:not(:disabled):active {
|
|
78
|
-
background: var(--color-primary-800);
|
|
79
|
-
border-color: var(--color-primary-400);
|
|
80
|
-
border-width: var(--border-width-thin);
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.ibis-button--primary:disabled {
|
|
84
|
-
background: var(--color-neutral-400);
|
|
85
|
-
color: var(--color-neutral-600);
|
|
86
|
-
border-color: var(--color-neutral-600);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/* Secondary Variant */
|
|
90
|
-
.ibis-button--secondary {
|
|
91
|
-
background-color: transparent;
|
|
92
|
-
color: var(--color-primary-pink-500);
|
|
93
|
-
border-color: var(--color-primary-pink-700);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.ibis-button--secondary:not(:disabled):hover {
|
|
97
|
-
background-color: var(--color-primary-pink-100);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/* Variant Sizes */
|
|
101
|
-
.ibis-button--sm {
|
|
102
|
-
padding: var(--spacing-1) var(--spacing-2);
|
|
103
|
-
font-size: var(--font-size-normal-text-sm);
|
|
104
|
-
border-radius: var(--component-button-size-sm-border-radius);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.ibis-button--md {
|
|
108
|
-
padding: var(--spacing-2) var(--spacing-4);
|
|
109
|
-
font-size: var(--font-size-normal-text-DEFAULT);
|
|
110
|
-
border-radius: var(--component-button-size-md-border-radius);
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.ibis-button--lg {
|
|
114
|
-
padding: var(--spacing-3) var(--spacing-6);
|
|
115
|
-
font-size: var(--font-size-normal-text-lg);
|
|
116
|
-
border-radius: var(--component-button-size-lg-border-radius);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/* Loader Spinner */
|
|
120
|
-
.ibis-button__loader {
|
|
121
|
-
position: absolute;
|
|
122
|
-
width: 1em;
|
|
123
|
-
height: 1em;
|
|
124
|
-
border: var(--border-width-default) solid var(--color-black);
|
|
125
|
-
border-top-color: var(--color-white);
|
|
126
|
-
border-radius: 50%;
|
|
127
|
-
animation: ibis-spin 0.8s linear infinite;
|
|
128
|
-
top: 50%;
|
|
129
|
-
left: 50%;
|
|
130
|
-
transform: translate(-50%, -50%);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
@keyframes ibis-spin {
|
|
134
|
-
from {
|
|
135
|
-
transform: translate(-50%, -50%) rotate(0deg);
|
|
136
|
-
}
|
|
137
|
-
to {
|
|
138
|
-
transform: translate(-50%, -50%) rotate(360deg);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/* Skeleton State */
|
|
143
|
-
.ibis-button--skeleton {
|
|
144
|
-
position: relative;
|
|
145
|
-
overflow: hidden;
|
|
146
|
-
background: var(--color-neutral-200);
|
|
147
|
-
color: transparent;
|
|
148
|
-
border-color: var(--color-neutral-500);
|
|
149
|
-
cursor: default;
|
|
150
|
-
pointer-events: none;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
.ibis-button--skeleton::after {
|
|
154
|
-
content: '';
|
|
155
|
-
position: absolute;
|
|
156
|
-
top: 50%;
|
|
157
|
-
left: 50%;
|
|
158
|
-
transform: translate(-50%, -50%);
|
|
159
|
-
width: 80%;
|
|
160
|
-
height: 1em;
|
|
161
|
-
background-color: var(--color-neutral-400);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
.ibis-button--icon-only--skeleton::after {
|
|
165
|
-
width: 1em;
|
|
166
|
-
height: 1em;
|
|
167
|
-
border-radius: 4px;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
.ibis-button--skeleton::before {
|
|
171
|
-
content: '';
|
|
172
|
-
position: absolute;
|
|
173
|
-
inset: 0;
|
|
174
|
-
background: linear-gradient(
|
|
175
|
-
90deg,
|
|
176
|
-
rgba(255, 255, 255, 0.25) 0%,
|
|
177
|
-
rgba(255, 255, 255, 0.6) 50%,
|
|
178
|
-
rgba(255, 255, 255, 0.25) 100%
|
|
179
|
-
);
|
|
180
|
-
transform: translateX(-100%);
|
|
181
|
-
animation: ibis-shimmer 2s infinite;
|
|
182
|
-
border-radius: inherit;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
@keyframes ibis-shimmer {
|
|
186
|
-
0% {
|
|
187
|
-
transform: translateX(-100%);
|
|
188
|
-
}
|
|
189
|
-
|
|
190
|
-
100% {
|
|
191
|
-
transform: translateX(100%);
|
|
192
|
-
}
|
|
193
|
-
}
|