django-cotton-ui 0.1.0__tar.gz
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.
- django_cotton_ui-0.1.0/LICENSE +21 -0
- django_cotton_ui-0.1.0/PKG-INFO +87 -0
- django_cotton_ui-0.1.0/README.md +53 -0
- django_cotton_ui-0.1.0/django_cotton_ui/__init__.py +3 -0
- django_cotton_ui-0.1.0/django_cotton_ui/apps.py +6 -0
- django_cotton_ui-0.1.0/django_cotton_ui/static/cotton-ui/cotton-ui.css +81 -0
- django_cotton_ui-0.1.0/django_cotton_ui/static/cotton-ui/cotton-ui.esm.js +3457 -0
- django_cotton_ui-0.1.0/django_cotton_ui/static/cotton-ui/cotton-ui.js +3459 -0
- django_cotton_ui-0.1.0/django_cotton_ui/static/cotton-ui/cotton-ui.min.js +2 -0
- django_cotton_ui-0.1.0/django_cotton_ui/static/cotton-ui/manifest.json +2 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/accordion/index.html +18 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/accordion/item.html +45 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/alert.html +58 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/avatar/group.html +3 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/avatar/index.html +55 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/badge.html +92 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/breadcrumbs/index.html +32 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/breadcrumbs/item.html +13 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/button.html +66 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/calendar.html +121 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/card.html +56 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/checkbox/group/impl.html +33 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/checkbox/group/index.html +25 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/checkbox/index.html +120 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/collapse.html +19 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/combobox/impl.html +160 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/combobox/index.html +25 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/composer.html +53 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/datepicker/impl.html +92 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/datepicker/index.html +25 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/description.html +3 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/dialog/description.html +3 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/dialog/index.html +62 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/dialog/title.html +3 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/drawer.html +82 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/dropdown/group.html +13 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/dropdown/index.html +71 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/dropdown/item.html +87 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/dropdown/separator.html +6 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/error.html +36 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/field.html +57 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/input/impl.html +52 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/input/index.html +37 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/label.html +16 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/menu/content.html +28 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/menu/group.html +13 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/menu/index.html +168 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/menu/item.html +55 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/menu/trigger.html +62 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/nav/index.html +21 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/nav/item.html +20 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/navbar/index.html +75 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/navbar/item.html +13 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/navlist/group.html +45 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/navlist/index.html +44 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/navlist/item.html +20 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/pagination/ellipsis.html +5 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/pagination/index.html +34 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/pagination/item.html +14 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/pagination/next.html +15 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/pagination/prev.html +15 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/popover.html +95 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/progress.html +44 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/radio/group/impl.html +35 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/radio/group/index.html +25 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/radio/index.html +122 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/scrollspy.html +56 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/select/impl.html +37 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/select/index.html +25 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/select/listbox/content.html +26 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/select/listbox/group.html +13 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/select/listbox/index.html +124 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/select/listbox/option.html +56 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/select/listbox/search.html +29 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/select/listbox/trigger.html +61 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/select/native.html +37 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/select/option.html +14 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/spinner.html +24 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/switch/impl.html +84 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/switch/index.html +27 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/table.html +14 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/tabs/index.html +74 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/tabs/tab.html +14 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/textarea/impl.html +47 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/textarea/index.html +25 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/toast/container.html +121 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templates/cotton/ui/tooltip.html +216 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templatetags/__init__.py +0 -0
- django_cotton_ui-0.1.0/django_cotton_ui/templatetags/cotton_ui.py +39 -0
- django_cotton_ui-0.1.0/pyproject.toml +38 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Will Abbott
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: django-cotton-ui
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: UI component library for Django Cotton
|
|
5
|
+
License: MIT
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Keywords: django,components,ui,tailwind,alpine
|
|
8
|
+
Author: Will Abbott
|
|
9
|
+
Author-email: willabb83@gmail.com
|
|
10
|
+
Requires-Python: >=3.8,<4
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Framework :: Django
|
|
13
|
+
Classifier: Framework :: Django :: 4.2
|
|
14
|
+
Classifier: Framework :: Django :: 5.0
|
|
15
|
+
Classifier: Framework :: Django :: 5.1
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Classifier: Programming Language :: Python :: 3
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
27
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
28
|
+
Requires-Dist: django (>=4.2,<6.0)
|
|
29
|
+
Requires-Dist: django-cotton (>=2.5.0)
|
|
30
|
+
Project-URL: Homepage, https://github.com/wrabit/django-cotton-ui
|
|
31
|
+
Project-URL: Repository, https://github.com/wrabit/django-cotton-ui
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
|
|
34
|
+
# Django Cotton UI
|
|
35
|
+
|
|
36
|
+
An optional kit of accessible, themeable UI components for [Django Cotton](https://github.com/wrabit/django-cotton), built with Tailwind CSS v4 and Alpine.js.
|
|
37
|
+
|
|
38
|
+
### 📖 Documentation: **[django-cotton.com/ui](https://django-cotton.com/ui)**
|
|
39
|
+
|
|
40
|
+
The docs cover installation, theming and every component with live examples.
|
|
41
|
+
|
|
42
|
+
## Install
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pip install django-cotton-ui
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Add it to `INSTALLED_APPS` after `django_cotton`:
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
INSTALLED_APPS = [
|
|
52
|
+
# ...
|
|
53
|
+
"django_cotton",
|
|
54
|
+
"django_cotton_ui",
|
|
55
|
+
]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Then wire up Tailwind v4 (scan the component templates, import the theme) and the
|
|
59
|
+
Alpine bundle. See the [installation guide](https://django-cotton.com/ui/installation)
|
|
60
|
+
for the full setup.
|
|
61
|
+
|
|
62
|
+
## Usage
|
|
63
|
+
|
|
64
|
+
Components use the `c-ui.` prefix:
|
|
65
|
+
|
|
66
|
+
```django
|
|
67
|
+
<c-ui.button variant="primary">Save</c-ui.button>
|
|
68
|
+
<c-ui.input name="email" label="Email" placeholder="you@example.com" />
|
|
69
|
+
|
|
70
|
+
<c-ui.card>
|
|
71
|
+
<h3 class="font-semibold">Title</h3>
|
|
72
|
+
<p>Content goes here.</p>
|
|
73
|
+
</c-ui.card>
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Browse the full set with live examples in the [component docs](https://django-cotton.com/ui).
|
|
77
|
+
|
|
78
|
+
## Requirements
|
|
79
|
+
|
|
80
|
+
- Python ≥ 3.8 · Django ≥ 4.2 · django-cotton ≥ 2.5
|
|
81
|
+
- Tailwind CSS **v4** with a build step (the same setup any Tailwind project uses; the Play CDN and v3 won't work, as the kit's styles are compiled from your `@source`-scanned templates)
|
|
82
|
+
- Alpine.js v3
|
|
83
|
+
|
|
84
|
+
## License
|
|
85
|
+
|
|
86
|
+
MIT
|
|
87
|
+
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Django Cotton UI
|
|
2
|
+
|
|
3
|
+
An optional kit of accessible, themeable UI components for [Django Cotton](https://github.com/wrabit/django-cotton), built with Tailwind CSS v4 and Alpine.js.
|
|
4
|
+
|
|
5
|
+
### 📖 Documentation: **[django-cotton.com/ui](https://django-cotton.com/ui)**
|
|
6
|
+
|
|
7
|
+
The docs cover installation, theming and every component with live examples.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
pip install django-cotton-ui
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Add it to `INSTALLED_APPS` after `django_cotton`:
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
INSTALLED_APPS = [
|
|
19
|
+
# ...
|
|
20
|
+
"django_cotton",
|
|
21
|
+
"django_cotton_ui",
|
|
22
|
+
]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Then wire up Tailwind v4 (scan the component templates, import the theme) and the
|
|
26
|
+
Alpine bundle. See the [installation guide](https://django-cotton.com/ui/installation)
|
|
27
|
+
for the full setup.
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
Components use the `c-ui.` prefix:
|
|
32
|
+
|
|
33
|
+
```django
|
|
34
|
+
<c-ui.button variant="primary">Save</c-ui.button>
|
|
35
|
+
<c-ui.input name="email" label="Email" placeholder="you@example.com" />
|
|
36
|
+
|
|
37
|
+
<c-ui.card>
|
|
38
|
+
<h3 class="font-semibold">Title</h3>
|
|
39
|
+
<p>Content goes here.</p>
|
|
40
|
+
</c-ui.card>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Browse the full set with live examples in the [component docs](https://django-cotton.com/ui).
|
|
44
|
+
|
|
45
|
+
## Requirements
|
|
46
|
+
|
|
47
|
+
- Python ≥ 3.8 · Django ≥ 4.2 · django-cotton ≥ 2.5
|
|
48
|
+
- Tailwind CSS **v4** with a build step (the same setup any Tailwind project uses; the Play CDN and v3 won't work, as the kit's styles are compiled from your `@source`-scanned templates)
|
|
49
|
+
- Alpine.js v3
|
|
50
|
+
|
|
51
|
+
## License
|
|
52
|
+
|
|
53
|
+
MIT
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Cotton UI styles — the kit's single stylesheet.
|
|
3
|
+
*
|
|
4
|
+
* Import once into your Tailwind v4 entry, AFTER `@import "tailwindcss"`:
|
|
5
|
+
*
|
|
6
|
+
* @import "tailwindcss";
|
|
7
|
+
* @import "<path>/static/cotton-ui/cotton-ui.css";
|
|
8
|
+
* @source "<path>/templates";
|
|
9
|
+
*
|
|
10
|
+
* One import compiles everything the components need into your CSS: the accent
|
|
11
|
+
* palette (neutral zinc by default), the component tokens (radius, surfaces,
|
|
12
|
+
* shadows, focus ring) and the Alpine `x-cloak` rule.
|
|
13
|
+
*
|
|
14
|
+
* Note: `@import` this into your Tailwind entry (it contains `@theme`); do NOT
|
|
15
|
+
* `<link>` it at runtime. To brand the kit, override --color-accent in your own
|
|
16
|
+
* @theme AFTER this import:
|
|
17
|
+
*
|
|
18
|
+
* @theme { --color-accent: var(--color-teal-500); --color-accent-content: var(--color-teal-600); }
|
|
19
|
+
* @layer theme { .dark { --color-accent: var(--color-teal-400); --color-accent-content: var(--color-teal-300); } }
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
@theme {
|
|
23
|
+
--color-accent: var(--color-zinc-900);
|
|
24
|
+
--color-accent-content: var(--color-zinc-700);
|
|
25
|
+
--color-accent-foreground: var(--color-white);
|
|
26
|
+
|
|
27
|
+
/* Radius is split by role, not by size, and kept in its own namespace so it never
|
|
28
|
+
collides with Tailwind's --radius-md/-lg scale or your own rounded-* usage.
|
|
29
|
+
Declared in @theme so the `rounded-control` / `rounded-box` utilities are generated. */
|
|
30
|
+
--radius-control: 0.375rem; /* form controls: inputs, buttons → rounded-control */
|
|
31
|
+
--radius-box: 0.5rem; /* structural: cards, dialogs, menus → rounded-box */
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* The remaining component tokens live in the `theme` layer so a consumer's @theme /
|
|
35
|
+
@layer theme overrides always win (light and dark stay in the same layer, no cascade upset). */
|
|
36
|
+
@layer theme {
|
|
37
|
+
:root {
|
|
38
|
+
--color-bg: var(--color-zinc-50); /* page base */
|
|
39
|
+
--color-surface: #ffffff; /* raised: cards, dialogs, menus */
|
|
40
|
+
--color-input-bg: transparent; /* form fields: border-defined in light; see .dark for the lift */
|
|
41
|
+
--color-box-border: var(--color-zinc-200); /* border for box-role surfaces (cards, dialogs, menus); set transparent for a shadow-only look. NOT inputs (see --radius-control). */
|
|
42
|
+
|
|
43
|
+
--shadow-input: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
44
|
+
--shadow-box: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
45
|
+
|
|
46
|
+
--focus-ring-width: 2px;
|
|
47
|
+
--focus-ring-offset: 0px;
|
|
48
|
+
--focus-ring-color: color-mix(in oklab, var(--color-accent) 50%, white);
|
|
49
|
+
--focus-ring-offset-color: #ffffff;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.dark {
|
|
53
|
+
--color-accent: var(--color-zinc-100);
|
|
54
|
+
--color-accent-content: var(--color-zinc-300);
|
|
55
|
+
--color-accent-foreground: var(--color-zinc-900);
|
|
56
|
+
--color-bg: var(--color-zinc-900);
|
|
57
|
+
--color-surface: var(--color-zinc-800);
|
|
58
|
+
--color-box-border: var(--color-zinc-700);
|
|
59
|
+
/* Inputs lift off any surface (page or card) via a translucent lighten. */
|
|
60
|
+
--color-input-bg: color-mix(in oklab, white 4%, transparent);
|
|
61
|
+
--focus-ring-offset-color: #18181b; /* zinc-900 */
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/* Unified focus indicator. Add `focus-ring` to any interactive element for a flush,
|
|
66
|
+
translucent accent ring on keyboard focus. Uses `outline` so it follows border-radius,
|
|
67
|
+
never clashes with the element's box-shadow, and is not clipped by overflow. Themeable
|
|
68
|
+
via --focus-ring-width / --focus-ring-color / --focus-ring-offset (see the theme builder). */
|
|
69
|
+
@utility focus-ring {
|
|
70
|
+
/* Solid 2px accent ring just outside the resting border, on keyboard focus.
|
|
71
|
+
The always-present transparent outline avoids a colour flash and suppresses the
|
|
72
|
+
UA default; only the colour changes on focus-visible. */
|
|
73
|
+
outline: var(--focus-ring-width) solid transparent;
|
|
74
|
+
outline-offset: var(--focus-ring-offset);
|
|
75
|
+
&:focus-visible { outline-color: var(--focus-ring-color); }
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* Alpine.js x-cloak */
|
|
79
|
+
[x-cloak] {
|
|
80
|
+
display: none !important;
|
|
81
|
+
}
|