Move v2 files to v3 branch
This commit is contained in:
parent
7b51e79f62
commit
2779841cab
|
@ -0,0 +1,151 @@
|
|||
# Contributing to daisyUI
|
||||
|
||||
daisyUI welcomes contributions from anyone willing to help 🤝
|
||||
|
||||
## Reporting issues
|
||||
|
||||
- Before opening a new issue, first [search for existing issues](https://github.com/saadeghi/daisyui/issues?q=) to avoid duplications.
|
||||
- Provide detailed reports to make things easier for maintainers.
|
||||
- If there's a weird bug, please provide a reproduction repository on Github (or a [CodePen page](https://daisyui.com/codepen/) or [Tailwind Play](https://daisyui.com/tailwindplay/) page)
|
||||
|
||||
## Fixing existing issues
|
||||
|
||||
- You can help by [fixing existing issues](https://github.com/saadeghi/daisyui/issues?q=)
|
||||
- Don't work on issues assigned to others (to avoid duplicate efforts)
|
||||
- Before starting to work on an issue, please first add a comment and ask to get assigned to that issue. This way everyone will know you're working on that and it avoids duplicate efforts.
|
||||
- Commit messages must start with: `fix: #1 [description]` which `1` is the number of issue, so the issue will close automatically and it gets added to changelog file on a release.
|
||||
|
||||
## Feature requests
|
||||
|
||||
- If you have an idea to discuss with the community, please [open a discussion](https://github.com/saadeghi/daisyui/discussions)
|
||||
- For feature requests, [open a new issue](https://github.com/saadeghi/daisyui/issues/new)
|
||||
- All feature requests may not fit this library and some may get rejected. Don't take it personally.
|
||||
|
||||
## Pull requests
|
||||
|
||||
- A pull request must fix [an open issue](https://github.com/saadeghi/daisyui/issues?q=is%3Aissue+is%3Aopen) **assigned to you**. If there's no issue, please create one first. If it's not assigned to you, please ask for it in the comments. This is for avoiding duplicate efforts.
|
||||
- Fixing typos doesn't need to be an issue. You can just open a pull request.
|
||||
- Fixing a mistake in document website doesn't need to be an issue. You can just open a pull request.
|
||||
|
||||
## Building on local
|
||||
|
||||
### To build the daisyUI node package on local:
|
||||
|
||||
1. [Fork and] clone the repo on local
|
||||
1. Install package dependencies:
|
||||
```
|
||||
npm install
|
||||
```
|
||||
1. Build the package:
|
||||
```
|
||||
npm run build
|
||||
```
|
||||
1. Now you can import daisyUI to your `tailwind.config.js`:
|
||||
```js
|
||||
module.exports = {
|
||||
plugins: [require("/path/to/dist/directory")],
|
||||
};
|
||||
```
|
||||
|
||||
### To run the [documentation site](https://daisyui.com/) on local:
|
||||
|
||||
1. [Fork and] clone the repo on local
|
||||
1. Install package dependencies:
|
||||
```
|
||||
npm install
|
||||
```
|
||||
1. Build the package:
|
||||
```
|
||||
npm run build
|
||||
```
|
||||
1. Install document site dependencies:
|
||||
```
|
||||
npm run install:docs
|
||||
```
|
||||
1. Run the document site:
|
||||
```
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Adding a new component
|
||||
|
||||
Before adding a new component, please make sure it's [start a discussion about it on Github](https://github.com/saadeghi/daisyui/discussions) so we can talk about how the structure and style should be.
|
||||
There is a `List of components` at the end of [/README.md](https://github.com/saadeghi/daisyui/blob/master/README.md) that I think would be a good addition to daisyUI.
|
||||
|
||||
### File structure
|
||||
|
||||
All component styles are in [`/src`](https://github.com/saadeghi/daisyui/tree/master/src) but it's important to separate the style to 4 files:
|
||||
|
||||
- `/src/components/unstyled`: Styles that define the layout and placement of a component
|
||||
(for example: [layout of `tab` and `tabs`](https://github.com/saadeghi/daisyui/blob/master/src/components/unstyled/tab.css))
|
||||
- `/src/components/styled`: Styles that define the visual appearance of a component
|
||||
(for example: [colors and spacing of `alert`](https://github.com/saadeghi/daisyui/blob/master/src/components/styled/alert.css))
|
||||
- `/src/utilities/unstyled`: Styles that define the layout and placement of a variant of a component that must be responsive
|
||||
(for example: [sizes of a `.btn`](https://github.com/saadeghi/daisyui/blob/master/src/utilities/unstyled/button.css))
|
||||
- `/src/utilities/styled`: Styles that define the visual appearance of a variant of a component that must be responsive
|
||||
(for example: [colors of `alert`](https://github.com/saadeghi/daisyui/blob/master/src/utilities/styled/alert.css))
|
||||
|
||||
> Separating styles to these 4 files, allows us to use daisyUI components with/without _design decision_ styles ([See `styled` config](styled)) and allows us to define some styles as responsive utilities (to work with `lg:`, `md:`, `sm:`, etc... prefixes)
|
||||
|
||||
### Code samples with dynamic prefix
|
||||
|
||||
If your component documentation page contains `pre` blocks for code samples, be sure to follow the example below so that the code will be displayed with the correct prefix dynamically set by user:
|
||||
|
||||
```svelte
|
||||
<Component title="Buttons with brand colors">
|
||||
<button class="btn">Button</button>
|
||||
<button class="btn btn-primary">Primary</button>
|
||||
<button class="btn btn-secondary">Secondary</button>
|
||||
<button class="btn btn-accent">Accent</button>
|
||||
<button class="btn btn-ghost">Ghost</button>
|
||||
<button class="btn btn-link">Link</button>
|
||||
|
||||
<!-- add $$ to each class name in pre block-->
|
||||
<pre slot="html" use:replace={{ to: $prefix }}>{
|
||||
`<button class="$$btn">Button</button>
|
||||
<button class="$$btn $$btn-primary">Button</button>
|
||||
<button class="$$btn $$btn-secondary">Button</button>
|
||||
<button class="$$btn $$btn-accent">Button</button>
|
||||
<button class="$$btn $$btn-ghost">Button</button>
|
||||
<button class="$$btn $$btn-link">Button</button>`
|
||||
}</pre>
|
||||
</Component>
|
||||
|
||||
```
|
||||
|
||||
### An example
|
||||
|
||||
Let's say we want to add a new component named `.coolbutton` (don't add that actually 😅 )
|
||||
|
||||
1. Add these files:
|
||||
```
|
||||
/src/components/unstyled/coolbutton.css
|
||||
/src/components/styled/coolbutton.css
|
||||
```
|
||||
1. Add your CSS there (you can use `@apply`)
|
||||
- `/unstyled/coolbutton.css` is for the structure of the component without any design decision
|
||||
- `/styled/coolbutton.css` is for the visual appearance of the component with colors, spacing, etc.
|
||||
1. Add a page to documentation site:
|
||||
```
|
||||
/src/docs/src/routes/components/coolbutton.svelte.md
|
||||
```
|
||||
1. Add page info and some HTML to your [Svelte](https://svelte.dev/) markdown ([mdsvex](https://mdsvex.pngwn.io/)) file that uses your class name
|
||||
|
||||
```mdx
|
||||
---
|
||||
title: Coolbutton
|
||||
desc: It's a button but it's cool!
|
||||
published: true
|
||||
---
|
||||
|
||||
<button class="coolbutton">Cool!</button>
|
||||
```
|
||||
|
||||
1. Build the documentation site:
|
||||
```
|
||||
npm run dev
|
||||
```
|
||||
1. Now when you open the site on localhost, you can see your new page, showing the new component with your style:
|
||||
```
|
||||
http://localhost:3000/components/coolbutton
|
||||
```
|
|
@ -0,0 +1 @@
|
|||
open_collective: daisyui
|
|
@ -0,0 +1,42 @@
|
|||
name: 🐞 Report a new Bug
|
||||
description: If you found a new bug on daisyUI, report it here.
|
||||
title: "bug: "
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please first search in [existing issues](https://github.com/saadeghi/daisyui/issues?q=is%3Aissue) and [discussion forum](https://github.com/saadeghi/daisyui/discussions) and make sure this bug is not addressed before.
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: What version of daisyUI are you using?
|
||||
description: You can see the daisyUI version number on your `package.json` file.
|
||||
placeholder: 'example: v2.47.0'
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe your issue
|
||||
description: Describe the problem and say how and when it happens
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: browsers
|
||||
attributes:
|
||||
label: What browsers are you seeing the problem on?
|
||||
multiple: true
|
||||
options:
|
||||
- Chrome
|
||||
- Safari
|
||||
- Firefox
|
||||
- Edge
|
||||
- Other
|
||||
- type: input
|
||||
id: reproduction
|
||||
attributes:
|
||||
label: Reproduction URL (optional)
|
||||
description: Provide a link to a [Tailwind Play](https://daisyui.com/tailwindplay/) page or a public GitHub repo so we can reproduce the issue.
|
||||
placeholder: 'https://'
|
||||
validations:
|
||||
required: false
|
|
@ -0,0 +1,14 @@
|
|||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: 🔎 Search in Discussions
|
||||
url: https://github.com/saadeghi/daisyui/discussions
|
||||
about: First see if there's an existing topic in Discussions.
|
||||
- name: 🔎 Search in Issues
|
||||
url: https://github.com/saadeghi/daisyui/issues?q=is%3Aissue
|
||||
about: If you found a bug, first see if there's an existing issue about it.
|
||||
- name: ❓ Ask a new question in Discussions
|
||||
url: https://github.com/saadeghi/daisyui/discussions/new?category=q-a
|
||||
about: If you have a new question and you couldn't find answers.
|
||||
- name: 💡 Ideas / Feature request
|
||||
url: https://github.com/saadeghi/daisyui/discussions/new?category=ideas-feature-requests
|
||||
about: If you want to suggest a new idea or if you want a new feature to be added to daisyUI, let's talk about it in Discussions forum
|
|
@ -0,0 +1,33 @@
|
|||
name: 📕 Documentation Issue
|
||||
description: If you found an issue on daisyui.com website
|
||||
title: "docs: "
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please first search in [existing issues](https://github.com/saadeghi/daisyui/issues?q=is%3Aissue) and [discussion forum](https://github.com/saadeghi/daisyui/discussions) and make sure this issue is not addressed before.
|
||||
- type: input
|
||||
id: page
|
||||
attributes:
|
||||
label: On which page do you see this issue?
|
||||
placeholder: 'example: https://daisyui.com/'
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe the issue
|
||||
description: Describe the problem and say how and when it happens
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: browsers
|
||||
attributes:
|
||||
label: What browsers are you seeing the problem on?
|
||||
multiple: true
|
||||
options:
|
||||
- Chrome
|
||||
- Safari
|
||||
- Firefox
|
||||
- Edge
|
||||
- Other
|
|
@ -0,0 +1,102 @@
|
|||
name: "Build, Publish, Deploy"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
release:
|
||||
name: "Build"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2.3.4
|
||||
|
||||
- name: Setup Node.js environment
|
||||
uses: actions/setup-node@v2.1.2
|
||||
with:
|
||||
node-version: 16.8.0
|
||||
registry-url: https://registry.npmjs.org
|
||||
|
||||
- name: check latest released version
|
||||
id: check
|
||||
uses: EndBug/version-check@v2.1.0
|
||||
with:
|
||||
file-url: https://unpkg.com/daisyui@latest/package.json
|
||||
static-checking: localIsNew
|
||||
|
||||
- name: Install dependencies
|
||||
if: steps.check.outputs.changed == 'true'
|
||||
run: npm install
|
||||
|
||||
- name: build
|
||||
if: steps.check.outputs.changed == 'true'
|
||||
run: npm run build
|
||||
|
||||
- name: Publish
|
||||
if: steps.check.outputs.changed == 'true'
|
||||
run: npm publish
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
|
||||
|
||||
- name: Read package version from package.json
|
||||
if: steps.check.outputs.changed == 'true'
|
||||
uses: nyaa8/package-version@v1
|
||||
with:
|
||||
path: "package.json"
|
||||
|
||||
- name: update package version in env
|
||||
if: steps.check.outputs.changed == 'true'
|
||||
uses: SpicyPizza/create-envfile@v1
|
||||
with:
|
||||
envkey_VITE_DAISYUI_VERSION: ${{ env.PACKAGE_VERSION }}
|
||||
file_name: src/docs/.env
|
||||
|
||||
- name: update package version in readme
|
||||
if: steps.check.outputs.changed == 'true'
|
||||
uses: mingjun97/file-regex-replace@v1
|
||||
with:
|
||||
regex: 'cdn.jsdelivr.net\/npm\/daisyui@.*\/dist\/'
|
||||
replacement: "cdn.jsdelivr.net/npm/daisyui@${{ env.PACKAGE_VERSION }}/dist/"
|
||||
include: "README.md"
|
||||
|
||||
- name: Commit files
|
||||
if: steps.check.outputs.changed == 'true'
|
||||
id: commit
|
||||
run: |
|
||||
git config --local user.email "pouya.saadeghi@gmail.com"
|
||||
git config --local user.name "Pouya Saadeghi"
|
||||
git add --all
|
||||
if [-z "$(git status --porcelain)"]; then
|
||||
echo "::set-output name=push::false"
|
||||
else
|
||||
git commit -m "Update version" -a
|
||||
echo "::set-output name=push::true"
|
||||
fi
|
||||
shell: bash
|
||||
- name: Push changes
|
||||
if: steps.commit.outputs.push == 'true'
|
||||
uses: ad-m/github-push-action@master
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Wait 10 seconds for npm publish
|
||||
if: steps.check.outputs.changed == 'true'
|
||||
uses: whatnick/wait-action@master
|
||||
with:
|
||||
time: "10s"
|
||||
|
||||
- name: Install document website dependencies
|
||||
run: cd src/docs && npm install
|
||||
|
||||
- name: Build document website
|
||||
run: cd src/docs && npm run build
|
||||
|
||||
- name: Deploy docs to github pages
|
||||
uses: peaceiris/actions-gh-pages@v3
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
publish_dir: ./src/docs/build
|
||||
cname: ${{ secrets.CNAME }}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
node_modules
|
||||
yarn.lock
|
||||
/package-lock.json
|
||||
.next
|
||||
/dist
|
||||
/colors
|
||||
/index.js
|
||||
.idea
|
||||
.DS_Store
|
||||
*.tgz
|
||||
/coverage
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2020 Pouya Saadeghi
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
|
@ -0,0 +1,249 @@
|
|||
<div align="center">
|
||||
|
||||
[![][logo-url]][docs-url]
|
||||
|
||||
**The most popular, free and open-source Tailwind CSS component library**
|
||||
|
||||
[ [See all components](https://daisyui.com/components/) ]
|
||||
|
||||
[![][tweet]][tweet-url]
|
||||
|
||||
</div>
|
||||
|
||||
[![][banner-url]][docs-url]
|
||||
|
||||
# daisyUI 2.0
|
||||
|
||||
[![][build]][build-url] [![][npm]][npm-url] [![][number-of-components]][docs-url] [![][license]][license-url]
|
||||
[![][dl]][npm-url] [![][stars]][gh-url] [![][commit]][gh-url]
|
||||
|
||||
- [Official website →](https://daisyui.com/)
|
||||
- [See all components →](https://daisyui.com/components/)
|
||||
- [How to use →](https://daisyui.com/docs/install/)
|
||||
|
||||
|
||||
## 🌼 Features
|
||||
|
||||
- A plugin for Tailwind CSS
|
||||
- Faster development
|
||||
- Cleaner HTML
|
||||
- Customizable and themeable
|
||||
- Pure CSS. Works on all frameworks
|
||||
|
||||
|
||||
## 📀 Install now!
|
||||
|
||||
```bash
|
||||
npm i daisyui
|
||||
```
|
||||
|
||||
Then add daisyUI to your `tailwind.config.js`:
|
||||
|
||||
|
||||
```js
|
||||
module.exports = {
|
||||
plugins: [require("daisyui")],
|
||||
};
|
||||
```
|
||||
|
||||
[ [Read more →][docs-url-install] ]
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
Or use a CDN
|
||||
</summary>
|
||||
|
||||
Loading CSS files from CDN is not recommended for production. It's better to install Tailwind and daisyUI as Nodejs dependencies so you can config/customize everything, and purge unused styles.
|
||||
|
||||
```html
|
||||
<link href="https://cdn.jsdelivr.net/npm/daisyui@2.51.2/dist/full.css" rel="stylesheet" type="text/css" />
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
## 🚀 Use
|
||||
|
||||
[[See all components →](https://daisyui.com/components/)]
|
||||
|
||||
|
||||
## 📘 Documents + Examples
|
||||
|
||||
See the official site: [ [daisyui.com →](https://daisyui.com/)]
|
||||
|
||||
|
||||
## 🤝 Support daisyUI
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| **Premium Sponsors** <br /> Support this project by becoming a premium sponsor. <br /> [[Become a sponsor](https://opencollective.com/daisyui)] | <a href="https://opencollective.com/daisyui" target="_blank"><img src="https://opencollective.com/daisyui/tiers/premium-sponsor.svg?button=false&width=500&avatarHeight=120"></a> |
|
||||
| **Backers** <br /> Thank you to all our backers! <br /> [[Become a backer](https://opencollective.com/daisyui)] | <a href="https://opencollective.com/daisyui" target="_blank"><img src="https://opencollective.com/daisyui/backers.svg?button=false&width=500&avatarHeight=46"><img src="https://opencollective.com/daisyui/organizations.svg?button=false&width=500&avatarHeight=46"></a> |
|
||||
| **Contributors** <br /> This project exists thanks to all the people who contribute. <br /> [[Contribute](https://github.com/saadeghi/daisyui/blob/master/.github/CONTRIBUTING.md)] | <a href="https://github.com/saadeghi/daisyui/graphs/contributors" target="_blank"><img src="https://contrib.rocks/image?repo=saadeghi/daisyui&columns=13" width="500"></a> |
|
||||
|
||||
Tweet about daisyUI: [![][tweet]][tweet-url]
|
||||
|
||||
## 📁 List of components
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
show / hide
|
||||
</summary>
|
||||
|
||||
- Actions
|
||||
- [x] Button
|
||||
- [x] Dropdown
|
||||
- [x] Modal
|
||||
- [x] Swap
|
||||
|
||||
- Data display
|
||||
- [x] Alert
|
||||
- [x] Avatar
|
||||
- [x] Badge
|
||||
- [ ] Banner
|
||||
- [ ] Calendar
|
||||
- [x] Card
|
||||
- [x] Carousel
|
||||
- [x] Chat bubble
|
||||
- [x] Collapse
|
||||
- [ ] Comment
|
||||
- [x] Countdown
|
||||
- [ ] Empty placeholder
|
||||
- [x] Kbd
|
||||
- [ ] Loading
|
||||
- [x] Progress
|
||||
- [x] Radial progress
|
||||
- [x] Stat
|
||||
- [x] Table
|
||||
- [ ] Tag
|
||||
- [ ] Timeline
|
||||
- [x] Toast
|
||||
- [x] Tooltip
|
||||
- [ ] Treeview
|
||||
|
||||
- Data input
|
||||
- [x] Checkbox
|
||||
- [x] Text input
|
||||
- [x] Radio
|
||||
- [x] Range
|
||||
- [x] Rating
|
||||
- [x] Select
|
||||
- [x] Textarea
|
||||
- [x] Toggle
|
||||
- [ ] Upload
|
||||
|
||||
- Layout
|
||||
- [x] Artboard
|
||||
- [x] Button group
|
||||
- [x] Divider
|
||||
- [x] Drawer
|
||||
- [x] Footer
|
||||
- [x] Hero
|
||||
- [x] Indicator
|
||||
- [x] Input group
|
||||
- [x] Mask
|
||||
- [x] Stack
|
||||
|
||||
- Navigation
|
||||
- [x] Bottom Navigation
|
||||
- [x] Breadcrumbs
|
||||
- [x] Link
|
||||
- [x] Menu
|
||||
- [x] Navbar
|
||||
- [x] Pagination
|
||||
- [x] Steps
|
||||
- [x] Tab
|
||||
|
||||
- Mockup
|
||||
- [ ] Browser
|
||||
- [x] Code
|
||||
- [x] Phone
|
||||
- [x] Window
|
||||
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
## 📰 Featured on:
|
||||
|
||||
<details>
|
||||
<summary>
|
||||
show / hide
|
||||
</summary>
|
||||
|
||||
- Blogs
|
||||
- [Logrocket](https://blog.logrocket.com/daisyui-tailwind-components-react-apps/)
|
||||
- [GraphCMS](https://graphcms.com/blog/build-a-personal-timeline-with-graphcms-and-sveltekit)
|
||||
- [wweb.dev](https://wweb.dev/weekly/85/)
|
||||
- [flaming.codes](https://flaming.codes/posts/boostrap-tailwind-alternative-with-daisy-ui)
|
||||
- [rockyourcode](https://www.rockyourcode.com/how-to-setup-react-typescript-with-snowpack-and-daisyui/)
|
||||
- [HackerNews](https://news.ycombinator.com/item?id=28004515)
|
||||
- [Product Hunt](https://www.producthunt.com/posts/daisyui)
|
||||
- [Siecle Digital](https://siecledigital.fr/2021/05/29/daisyui-plugin-gratuit-avec-composants-tailwind-css-a/)
|
||||
- [speckyboy](https://speckyboy.com/weekly-news-for-designers-594/)
|
||||
- [dailydev](https://app.daily.dev/posts/-4OPGw0te)
|
||||
- [Future Tech Blog (Japanese)](https://future-architect.github.io/articles/20211124a/)
|
||||
- [Adding Tailwind and Daisy UI to SvelteKit](https://dev.to/brewhousedigital/adding-tailwind-and-daisy-ui-to-sveltekit-2hk5)
|
||||
- Youtube videos
|
||||
- [Supabase & Sveltekit - Build Twitter in 75 minutes](https://www.youtube.com/watch?v=mPQyckogDYc)
|
||||
- [Setup the Best Frontend JavaScript Stack - Svelte, Vite, TailwindCSS and DaisyUI](https://www.youtube.com/watch?v=mEBPN_9jTAE)
|
||||
- [Jamstack powered Image gallery with Cloudinary, Tailwind and DaisyUI](https://www.youtube.com/watch?v=Hpjq0D1vcpM)
|
||||
- [SvelteKit Crash Course w/ Tailwind CSS and DaisyUI, GraphQL and dynamic routes](https://www.youtube.com/watch?v=zH2qG9YwN3s)
|
||||
- [DaisyUI : Worth a try or skip on by?](https://www.youtube.com/watch?v=hM9fENyAquM)
|
||||
- [How to use daisyUI in SvelteKit?](https://www.youtube.com/watch?v=haKnkk6ds20)
|
||||
- [DaisyUI Untuk Yang Mau Pindah ke TailwindCSS dari Bootstrap (Indonesian)](https://www.youtube.com/watch?v=Wm2g6FWec34)
|
||||
- [Next.js - Tailwind - DeisyUI Setup](https://www.youtube.com/watch?v=uXQgJbUj3PQ)
|
||||
- [Svelte Setup with Vite, Tailwind, DaisyUI. Custom Themes!](https://www.youtube.com/watch?v=5lF5PxBJoso)
|
||||
- [Build a blog with Svelte](https://www.youtube.com/watch?v=u9jtHBE6NL8)
|
||||
- [Building a product in less than 10 minutes: Laravel, InertiaJS, VueJS, TailwindCSS, DaisyUI](https://www.youtube.com/watch?v=XR1rS-CCfx0)
|
||||
- [Infinite scrolling with MERN | ReactJS, TailwindCSS v3, DaisyUI | NodeJs, Express, MongoDB](https://www.youtube.com/watch?v=y7LYoRGRqRI)
|
||||
- [How to install TailwindCSS v3 and DaisyUI to your React app](https://www.youtube.com/watch?v=XBYvzPe7skc)
|
||||
- [Laravel: DaisyUI Agiliza Tus Desarrollos Con TailwindCSS + Select2 Tailwind Style (Spanish)](https://www.youtube.com/watch?v=28db3jojTgo)
|
||||
- [Build a Responsive Landing Page using DaisyUI, ReactJS and Tailwind CSS](https://www.youtube.com/watch?v=37gtpvy-k9U)
|
||||
- Courses
|
||||
- [Building with SvelteKit and GraphCMS](https://explorers.netlify.com/learn/building-with-sveltekit-and-graphcms)
|
||||
- [Svelte for Beginners by Mike Karan](https://www.udemy.com/course/svelte-for-beginners/)
|
||||
- [React Front To Back 2022 by Brad Traversy](https://www.udemy.com/course/react-front-to-back-2022/)
|
||||
- [Build Instagram profile page UI clone w/Next.js TailwindCSS](https://www.udemy.com/course/build-instagram-profile-page-ui-clone-nextjs-tailwindcss/)
|
||||
- [Instagram UI Clone Login Page w/ NextJS & TailwindCSS](https://www.udemy.com/course/instagram-ui-clone-login-page-w-nextjs-tailwindcss/)
|
||||
- [Build your Developer Portfolio and Blog from Scratch with Svelte and GraphCMS](https://www.freecodecamp.org/news/build-your-developer-portfolio-from-scratch-with-sveltekit-and-graphcms/)
|
||||
- Starters
|
||||
- [Vite-Boot](https://github.com/kirklin/vite-boot) Vite + Vue3 + TypeScript + Vue-Router4 + Pinia + Tailwind CSS + daisyUI Template.
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
|
||||
༼ つ ◕_◕ ༽つ Please share
|
||||
|
||||
[![][tweet]][tweet-url]
|
||||
|
||||
</div>
|
||||
|
||||
[install-size]: https://badgen.net/bundlephobia/minzip/daisyui?label=bundle%20size&color=green
|
||||
[build]: https://badgen.net/github/checks/saadeghi/daisyui?label=build
|
||||
[npm]: https://badgen.net/github/tag/saadeghi/daisyui?label=version&color=green
|
||||
[dl]: https://badgen.net/npm/dt/daisyui?label=installs&icon=npm&color=green
|
||||
[commit]: https://badgen.net/github/last-commit/saadeghi/daisyui?icon=github&color=green
|
||||
[license]: https://badgen.net/github/license/saadeghi/daisyui?color=green
|
||||
[stars]: https://badgen.net/github/stars/saadeghi/daisyui?color=green
|
||||
[tweet]: https://img.shields.io/twitter/url?style=social&url=https%3A%2F%2Fgithub.com%2Fsaadeghi%2Fdaisyui
|
||||
[install-size-url]: https://bundlephobia.com/result?p=daisyui
|
||||
[license-url]: https://github.com/saadeghi/daisyui/blob/master/LICENSE
|
||||
[npm-url]: https://www.npmjs.com/package/daisyui
|
||||
[cdnjs-url]: https://cdnjs.com/libraries/daisyui
|
||||
[gh-url]: https://github.com/saadeghi/daisyui
|
||||
[tw-play-url]: https://daisyui.com/tailwindplay
|
||||
[codepen-url]: https://codepen.io/saadeghi/pen/gOwWKvv
|
||||
[unpkg-url]: https://unpkg.com/browse/daisyui/
|
||||
[jsdeliver-url]: https://www.jsdelivr.com/package/npm/daisyui
|
||||
[build-url]: https://github.com/saadeghi/daisyui/actions
|
||||
[tweet-url]: https://twitter.com/intent/tweet?text=daisyUI%20%0D%0AComponents%20for%20Tailwind%20CSS%20%0D%0Ahttps://github.com/saadeghi/daisyui
|
||||
[number-of-components]: https://badgen.net/badge/total%20components/49/green
|
||||
[docs-url-install]: https://daisyui.com/docs/install
|
||||
[docs-url]: https://daisyui.com/
|
||||
[logo-url]: https://raw.githubusercontent.com/saadeghi/files/main/daisyui/logo-4.svg
|
||||
[banner-url]: https://raw.githubusercontent.com/saadeghi/files/main/daisyui/card-3.png
|
|
@ -0,0 +1,118 @@
|
|||
{
|
||||
"name": "daisyui",
|
||||
"version": "2.51.2",
|
||||
"description": "daisyUI - Tailwind CSS Components",
|
||||
"author": "Pouya Saadeghi",
|
||||
"license": "MIT",
|
||||
"homepage": "https://daisyui.com",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/saadeghi/daisyui.git"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/daisyui"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/saadeghi/daisyui/issues"
|
||||
},
|
||||
"keywords": [
|
||||
"design-system",
|
||||
"tailwindcss",
|
||||
"components",
|
||||
"ui-library",
|
||||
"component",
|
||||
"framework",
|
||||
"tailwind",
|
||||
"theming",
|
||||
"postcss",
|
||||
"design",
|
||||
"css",
|
||||
"ui"
|
||||
],
|
||||
"main": "src/index.js",
|
||||
"typings": "src/index.d.ts",
|
||||
"types": "src/index.d.ts",
|
||||
"files": [
|
||||
"src/lib/**/*.js",
|
||||
"dist/*.js",
|
||||
"dist/{themes,styled,unstyled,full}.css",
|
||||
"!dist/*.rtl.css",
|
||||
"src/index.js",
|
||||
"src/colors/*.js",
|
||||
"src/index.d.ts"
|
||||
],
|
||||
"browserslist": [
|
||||
"> 7%"
|
||||
],
|
||||
"publishConfig": {
|
||||
"access": "public",
|
||||
"branches": [
|
||||
"master"
|
||||
]
|
||||
},
|
||||
"prettier": "./src/prettier.config.js",
|
||||
"scripts": {
|
||||
"prettier": "prettier --write . --ignore-path ./src/.prettierignore",
|
||||
"prebase": "postcss --config src/base src/base/*.css --base src --dir dist",
|
||||
"base": "cat dist/base/*.css > dist/base.css",
|
||||
"postbase": "prejss-cli dist/base.css --format commonjs",
|
||||
"preutilities:global": "postcss --config src/utilities/global src/utilities/global/*.css --base src --dir dist",
|
||||
"utilities:global": "cat dist/utilities/global/*.css > dist/utilities.css",
|
||||
"postutilities:global": "prejss-cli dist/utilities.css --format commonjs",
|
||||
"preutilities:unstyled": "postcss --config src/utilities/unstyled src/utilities/unstyled/*.css --base src --dir dist",
|
||||
"utilities:unstyled": "cat dist/utilities/unstyled/*.css > dist/utilities-unstyled.css",
|
||||
"postutilities:unstyled": "prejss-cli dist/utilities-unstyled.css --format commonjs",
|
||||
"preutilities:styled": "postcss --config src/utilities/styled src/utilities/styled/*.css --base src --dir dist",
|
||||
"utilities:styled": "cat dist/utilities/styled/*.css > dist/utilities-styled.css",
|
||||
"postutilities:styled": "prejss-cli dist/utilities-styled.css --format commonjs",
|
||||
"components": "postcss --config src/components src/components/**/*.css --base src --dir dist",
|
||||
"merge:unstyled": "cat dist/components/unstyled/*.css > dist/unstyled.css",
|
||||
"merge:styled": "cat dist/components/unstyled/*.css dist/components/styled/*.css > dist/styled.css",
|
||||
"rtl": "rtlcss dist/unstyled.css -s && rtlcss dist/styled.css -s",
|
||||
"prejss": "prejss-cli dist/{unstyled,styled}{,.rtl}.css --format commonjs",
|
||||
"themes": "postcss src/themes/index.css -o dist/themes.css --config src/themes",
|
||||
"full": "postcss src/full/index.css -o dist/full.css --config src/full",
|
||||
"postfull": "parcel-css --minify --targets '> 7%' dist/full.css -o dist/full.css",
|
||||
"build": "npm run base && npm run utilities:global && npm run utilities:unstyled && npm run utilities:styled && npm run components && npm run merge:unstyled && npm run merge:styled && npm run rtl && npm run prejss && npm run themes && npm run full",
|
||||
"install:docs": "cd src/docs && npm install",
|
||||
"dev": "cd src/docs && npm run dev",
|
||||
"add": "touch src/components/unstyled/$npm_config_name.css && touch src/components/styled/$npm_config_name.css",
|
||||
"postadd": "open src/components/unstyled/$npm_config_name.css && open src/components/styled/$npm_config_name.css",
|
||||
"test": "vitest",
|
||||
"test:coverage": "vitest --coverage",
|
||||
"test:ui": "vitest --ui",
|
||||
"test:run": "vitest run",
|
||||
"playground": "cd src/experiments/playground && npm run dev",
|
||||
"release": "rm -f package-lock.json && standard-version",
|
||||
"release:patch": "rm -f package-lock.json && standard-version --release-as patch",
|
||||
"release:minor": "rm -f package-lock.json && standard-version --release-as minor",
|
||||
"release:major": "rm -f package-lock.json && standard-version --release-as major"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@parcel/css-cli": "1.5.0",
|
||||
"@types/css-selector-tokenizer": "^0.7.1",
|
||||
"@vitest/ui": "^0.7.10",
|
||||
"autoprefixer": "10.0.4",
|
||||
"c8": "^7.11.0",
|
||||
"color-contrast-checker": "^2.1.0",
|
||||
"postcss-cli": "8.3.0",
|
||||
"postcss-import": "13.0.0",
|
||||
"postcss-nested": "5.0.1",
|
||||
"prejss-cli": "0.3.3",
|
||||
"prettier": "^2.7.1",
|
||||
"rtlcss": "3.0.0",
|
||||
"standard-version": "^9.5.0",
|
||||
"vitest": "^0.7.10"
|
||||
},
|
||||
"dependencies": {
|
||||
"color": "^4.2",
|
||||
"css-selector-tokenizer": "^0.8.0",
|
||||
"postcss-js": "^4.0.0",
|
||||
"tailwindcss": "^3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"autoprefixer": "^10.0.2",
|
||||
"postcss": "^8.1.6"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
**/docs/.svelte-kit
|
||||
**/docs/build
|
||||
**/docs/node_modules
|
||||
**/CHANGELOG.md
|
||||
**/dist
|
|
@ -0,0 +1,5 @@
|
|||
:root,
|
||||
[data-theme] {
|
||||
background-color: hsla(var(--b1) / var(--tw-bg-opacity, 1));
|
||||
color: hsla(var(--bc) / var(--tw-text-opacity, 1));
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
/* device specific */
|
||||
html {
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
module.exports = {
|
||||
plugins: [
|
||||
require("postcss-import"),
|
||||
require("postcss-nested")({
|
||||
bubble: ["screen"],
|
||||
}),
|
||||
require("autoprefixer"),
|
||||
],
|
||||
};
|
|
@ -0,0 +1,34 @@
|
|||
module.exports = {
|
||||
primary: "--p",
|
||||
"primary-focus": "--pf",
|
||||
"primary-content": "--pc",
|
||||
|
||||
secondary: "--s",
|
||||
"secondary-focus": "--sf",
|
||||
"secondary-content": "--sc",
|
||||
|
||||
accent: "--a",
|
||||
"accent-focus": "--af",
|
||||
"accent-content": "--ac",
|
||||
|
||||
neutral: "--n",
|
||||
"neutral-focus": "--nf",
|
||||
"neutral-content": "--nc",
|
||||
|
||||
"base-100": "--b1",
|
||||
"base-200": "--b2",
|
||||
"base-300": "--b3",
|
||||
"base-content": "--bc",
|
||||
|
||||
info: "--in",
|
||||
"info-content": "--inc",
|
||||
|
||||
success: "--su",
|
||||
"success-content": "--suc",
|
||||
|
||||
warning: "--wa",
|
||||
"warning-content": "--wac",
|
||||
|
||||
error: "--er",
|
||||
"error-content": "--erc",
|
||||
};
|
|
@ -0,0 +1,313 @@
|
|||
const Color = require("color");
|
||||
const colorNames = require("./colorNames");
|
||||
|
||||
module.exports = {
|
||||
|
||||
generateForegroundColorFrom: function (input, percentage = 0.8) {
|
||||
if (Color(input).isDark()) {
|
||||
let arr = Color(input).mix(Color("white"), percentage).saturate(10).hsl().array()
|
||||
return arr[0].toPrecision(5).replace(/\.?0+$/,"") + " " + arr[1].toPrecision(5).replace(/\.?0+$/,"") + "%" + " " + arr[2].toPrecision(5).replace(/\.?0+$/,"") + "%";
|
||||
} else {
|
||||
let arr = Color(input).mix(Color("black"), percentage).saturate(10).hsl().array()
|
||||
return arr[0].toPrecision(5).replace(/\.?0+$/,"") + " " + arr[1].toPrecision(5).replace(/\.?0+$/,"") + "%" + " " + arr[2].toPrecision(5).replace(/\.?0+$/,"") + "%";
|
||||
}
|
||||
},
|
||||
|
||||
convertToHsl: function (input) {
|
||||
let resultObj = {};
|
||||
if (typeof input === "object" && input !== null) {
|
||||
Object.entries(input).forEach(([rule, value]) => {
|
||||
if (colorNames.hasOwnProperty(rule)) {
|
||||
const hslArray = Color(value).hsl().array();
|
||||
resultObj[colorNames[rule]] = hslArray[0].toPrecision(5).replace(/\.?0+$/,"") + " " + hslArray[1].toPrecision(5).replace(/\.?0+$/,"") + "%" + " " + hslArray[2].toPrecision(5).replace(/\.?0+$/,"") + "%";
|
||||
} else {
|
||||
resultObj[rule] = value;
|
||||
}
|
||||
|
||||
// auto generate focus colors
|
||||
if (!input.hasOwnProperty("primary-focus")) {
|
||||
const darkerHslArray = Color(input["primary"]).darken(0.2).hsl().array();
|
||||
resultObj["--pf"] = darkerHslArray[0].toPrecision(5).replace(/\.?0+$/,"") + " " + darkerHslArray[1].toPrecision(5).replace(/\.?0+$/,"") + "%" + " " + darkerHslArray[2].toPrecision(5).replace(/\.?0+$/,"") + "%";
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("secondary-focus")) {
|
||||
const darkerHslArray = Color(input["secondary"]).darken(0.2).hsl().array();
|
||||
resultObj["--sf"] = darkerHslArray[0].toPrecision(5).replace(/\.?0+$/,"") + " " + darkerHslArray[1].toPrecision(5).replace(/\.?0+$/,"") + "%" + " " + darkerHslArray[2].toPrecision(5).replace(/\.?0+$/,"") + "%";
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("accent-focus")) {
|
||||
const darkerHslArray = Color(input["accent"]).darken(0.2).hsl().array();
|
||||
resultObj["--af"] = darkerHslArray[0].toPrecision(5).replace(/\.?0+$/,"") + " " + darkerHslArray[1].toPrecision(5).replace(/\.?0+$/,"") + "%" + " " + darkerHslArray[2].toPrecision(5).replace(/\.?0+$/,"") + "%";
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("neutral-focus")) {
|
||||
const darkerHslArray = Color(input["neutral"]).darken(0.2).hsl().array();
|
||||
resultObj["--nf"] = darkerHslArray[0].toPrecision(5).replace(/\.?0+$/,"") + " " + darkerHslArray[1].toPrecision(5).replace(/\.?0+$/,"") + "%" + " " + darkerHslArray[2].toPrecision(5).replace(/\.?0+$/,"") + "%";
|
||||
}
|
||||
|
||||
// auto generate base colors
|
||||
if (!input.hasOwnProperty("base-100")) {
|
||||
resultObj["--b1"] = 0 + " " + 0 + "%" + " " + 100 + "%";
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("base-200")) {
|
||||
const darkerHslArray = Color(input["base-100"]).darken(0.1).hsl().array();
|
||||
resultObj["--b2"] = darkerHslArray[0].toPrecision(5).replace(/\.?0+$/,"") + " " + darkerHslArray[1].toPrecision(5).replace(/\.?0+$/,"") + "%" + " " + darkerHslArray[2].toPrecision(5).replace(/\.?0+$/,"") + "%";
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("base-300")) {
|
||||
if (input.hasOwnProperty("base-200")) {
|
||||
const darkerHslArray = Color(input["base-200"]).darken(0.1).hsl().array();
|
||||
resultObj["--b3"] = darkerHslArray[0].toPrecision(5).replace(/\.?0+$/,"") + " " + darkerHslArray[1].toPrecision(5).replace(/\.?0+$/,"") + "%" + " " + darkerHslArray[2].toPrecision(5).replace(/\.?0+$/,"") + "%";
|
||||
} else {
|
||||
const darkerHslArray = Color(input["base-100"]).darken(0.1).darken(0.1).hsl().array();
|
||||
resultObj["--b3"] = darkerHslArray[0].toPrecision(5).replace(/\.?0+$/,"") + " " + darkerHslArray[1].toPrecision(5).replace(/\.?0+$/,"") + "%" + " " + darkerHslArray[2].toPrecision(5).replace(/\.?0+$/,"") + "%";
|
||||
}
|
||||
}
|
||||
|
||||
// auto generate state colors
|
||||
if (!input.hasOwnProperty("info")) {
|
||||
resultObj["--in"] = 198 + " " + 93 + "%" + " " + 60 + "%";
|
||||
}
|
||||
if (!input.hasOwnProperty("success")) {
|
||||
resultObj["--su"] = 158 + " " + 64 + "%" + " " + 52 + "%";
|
||||
}
|
||||
if (!input.hasOwnProperty("warning")) {
|
||||
resultObj["--wa"] = 43 + " " + 96 + "%" + " " + 56 + "%";
|
||||
}
|
||||
if (!input.hasOwnProperty("error")) {
|
||||
resultObj["--er"] = 0 + " " + 91 + "%" + " " + 71 + "%";
|
||||
}
|
||||
|
||||
// auto generate content colors
|
||||
if (!input.hasOwnProperty("base-content")) {
|
||||
resultObj["--bc"] = this.generateForegroundColorFrom(input["base-100"])
|
||||
}
|
||||
if (!input.hasOwnProperty("primary-content")) {
|
||||
resultObj["--pc"] = this.generateForegroundColorFrom(input["primary"])
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("secondary-content")) {
|
||||
resultObj["--sc"] = this.generateForegroundColorFrom(input["secondary"])
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("accent-content")) {
|
||||
resultObj["--ac"] = this.generateForegroundColorFrom(input["accent"])
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("neutral-content")) {
|
||||
resultObj["--nc"] = this.generateForegroundColorFrom(input["neutral"])
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("info-content")) {
|
||||
if (input.hasOwnProperty("info")) {
|
||||
resultObj["--inc"] = this.generateForegroundColorFrom(input["info"])
|
||||
} else {
|
||||
resultObj["--inc"] = 198 + " " + 100 + "%" + " " + 12 + "%";
|
||||
}
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("success-content")) {
|
||||
if (input.hasOwnProperty("success")) {
|
||||
resultObj["--suc"] = this.generateForegroundColorFrom(input["success"])
|
||||
} else {
|
||||
resultObj["--suc"] = 158 + " " + 100 + "%" + " " + 10 + "%";
|
||||
}
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("warning-content")) {
|
||||
if (input.hasOwnProperty("warning")) {
|
||||
resultObj["--wac"] = this.generateForegroundColorFrom(input["warning"])
|
||||
} else {
|
||||
resultObj["--wac"] = 43 + " " + 100 + "%" + " " + 11 + "%";
|
||||
}
|
||||
}
|
||||
|
||||
if (!input.hasOwnProperty("error-content")) {
|
||||
if (input.hasOwnProperty("error")) {
|
||||
resultObj["--erc"] = this.generateForegroundColorFrom(input["error"])
|
||||
} else {
|
||||
resultObj["--erc"] = 0 + " " + 100 + "%" + " " + 14 + "%";
|
||||
}
|
||||
}
|
||||
|
||||
// auto generate css variables
|
||||
if (!input.hasOwnProperty("--rounded-box")) {
|
||||
resultObj["--rounded-box"] = "1rem";
|
||||
}
|
||||
if (!input.hasOwnProperty("--rounded-btn")) {
|
||||
resultObj["--rounded-btn"] = "0.5rem";
|
||||
}
|
||||
if (!input.hasOwnProperty("--rounded-badge")) {
|
||||
resultObj["--rounded-badge"] = "1.9rem";
|
||||
}
|
||||
if (!input.hasOwnProperty("--animation-btn")) {
|
||||
resultObj["--animation-btn"] = "0.25s";
|
||||
}
|
||||
if (!input.hasOwnProperty("--animation-input")) {
|
||||
resultObj["--animation-input"] = ".2s";
|
||||
}
|
||||
if (!input.hasOwnProperty("--btn-text-case")) {
|
||||
resultObj["--btn-text-case"] = "uppercase";
|
||||
}
|
||||
if (!input.hasOwnProperty("--btn-focus-scale")) {
|
||||
resultObj["--btn-focus-scale"] = "0.95";
|
||||
}
|
||||
if (!input.hasOwnProperty("--border-btn")) {
|
||||
resultObj["--border-btn"] = "1px";
|
||||
}
|
||||
if (!input.hasOwnProperty("--tab-border")) {
|
||||
resultObj["--tab-border"] = "1px";
|
||||
}
|
||||
if (!input.hasOwnProperty("--tab-radius")) {
|
||||
resultObj["--tab-radius"] = "0.5rem";
|
||||
}
|
||||
|
||||
});
|
||||
return resultObj;
|
||||
}
|
||||
return input;
|
||||
},
|
||||
|
||||
injectThemes: function (addBase, config, themes) {
|
||||
let includedThemesObj = new Object();
|
||||
|
||||
// add light themes
|
||||
if (config("daisyui.themes") == false) {
|
||||
Object.entries(themes).forEach(([theme, index]) => {
|
||||
includedThemesObj[theme] = this.convertToHsl(themes[theme]);
|
||||
});
|
||||
}
|
||||
|
||||
// add default themes
|
||||
if (config("daisyui.themes") != false) {
|
||||
Object.entries(themes).forEach(([theme, index]) => {
|
||||
includedThemesObj[theme] = this.convertToHsl(themes[theme]);
|
||||
});
|
||||
}
|
||||
|
||||
// add custom themes
|
||||
if (Array.isArray(config("daisyui.themes"))) {
|
||||
config("daisyui.themes").forEach((item, index) => {
|
||||
if (typeof item === "object" && item !== null) {
|
||||
Object.entries(item).forEach(([customThemeName, customThemevalue]) => {
|
||||
includedThemesObj["[data-theme=" + customThemeName + "]"] =
|
||||
this.convertToHsl(customThemevalue);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
let themeOrder = [];
|
||||
if (Array.isArray(config("daisyui.themes"))) {
|
||||
config("daisyui.themes").forEach((theme, index) => {
|
||||
if (typeof theme === "object" && theme !== null) {
|
||||
Object.entries(theme).forEach(([customThemeName, customThemevalue]) => {
|
||||
themeOrder.push(customThemeName);
|
||||
});
|
||||
} else if (
|
||||
includedThemesObj.hasOwnProperty("[data-theme=" + theme + "]")
|
||||
) {
|
||||
themeOrder.push(theme);
|
||||
}
|
||||
});
|
||||
} else if (config("daisyui.themes") != false) {
|
||||
themeOrder = [
|
||||
"light",
|
||||
"dark",
|
||||
"cupcake",
|
||||
"bumblebee",
|
||||
"emerald",
|
||||
"corporate",
|
||||
"synthwave",
|
||||
"retro",
|
||||
"cyberpunk",
|
||||
"valentine",
|
||||
"halloween",
|
||||
"garden",
|
||||
"forest",
|
||||
"aqua",
|
||||
"lofi",
|
||||
"pastel",
|
||||
"fantasy",
|
||||
"wireframe",
|
||||
"black",
|
||||
"luxury",
|
||||
"dracula",
|
||||
"cmyk",
|
||||
"autumn",
|
||||
"business",
|
||||
"acid",
|
||||
"lemonade",
|
||||
"night",
|
||||
"coffee",
|
||||
"winter",
|
||||
];
|
||||
} else if (config("daisyui.themes") == false) {
|
||||
themeOrder.push("light");
|
||||
}
|
||||
|
||||
// inject themes in order
|
||||
themeOrder.forEach((themeName, index) => {
|
||||
if (index === 0) {
|
||||
// first theme as root
|
||||
addBase({
|
||||
[":root"]: includedThemesObj["[data-theme=" + themeName + "]"],
|
||||
});
|
||||
} else if (index === 1) {
|
||||
// auto dark
|
||||
if (config("daisyui.darkTheme")) {
|
||||
if (
|
||||
themeOrder[0] != config("daisyui.darkTheme") &&
|
||||
themeOrder.includes(config("daisyui.darkTheme"))
|
||||
) {
|
||||
addBase({
|
||||
["@media (prefers-color-scheme: dark)"]: {
|
||||
[":root"]:
|
||||
includedThemesObj[
|
||||
`[data-theme=${config("daisyui.darkTheme")}]`
|
||||
],
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
else if (config("daisyui.darkTheme") === false ) {
|
||||
// disables prefers-color-scheme: dark
|
||||
} else {
|
||||
if (themeOrder[0] != "dark" && themeOrder.includes("dark")) {
|
||||
addBase({
|
||||
["@media (prefers-color-scheme: dark)"]: {
|
||||
[":root"]: includedThemesObj["[data-theme=dark]"],
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
// theme 0 with name
|
||||
addBase({
|
||||
["[data-theme=" + themeOrder[0] + "]"]:
|
||||
includedThemesObj["[data-theme=" + themeOrder[0] + "]"],
|
||||
});
|
||||
// theme 1 with name
|
||||
addBase({
|
||||
["[data-theme=" + themeOrder[1] + "]"]:
|
||||
includedThemesObj["[data-theme=" + themeOrder[1] + "]"],
|
||||
});
|
||||
} else {
|
||||
addBase({
|
||||
["[data-theme=" + themeName + "]"]:
|
||||
includedThemesObj["[data-theme=" + themeName + "]"],
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
return {
|
||||
includedThemesObj: includedThemesObj,
|
||||
themeOrder: themeOrder,
|
||||
};
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
function withOpacityValue(variable, fallbackColor) {
|
||||
return ({ opacityValue }) => {
|
||||
let fallbackColorValue = "";
|
||||
if (fallbackColor) {
|
||||
fallbackColorValue = `, var(${fallbackColor})`;
|
||||
}
|
||||
if (opacityValue === undefined) {
|
||||
return `hsl(var(${variable}${fallbackColorValue}))`;
|
||||
}
|
||||
return `hsl(var(${variable}${fallbackColorValue}) / ${opacityValue})`;
|
||||
};
|
||||
}
|
||||
|
||||
let colorObject = {
|
||||
transparent: "transparent",
|
||||
current: "currentColor",
|
||||
|
||||
primary: withOpacityValue("--p"),
|
||||
"primary-focus": withOpacityValue("--pf", "--p"),
|
||||
"primary-content": withOpacityValue("--pc"),
|
||||
|
||||
secondary: withOpacityValue("--s"),
|
||||
"secondary-focus": withOpacityValue("--sf", "--s"),
|
||||
"secondary-content": withOpacityValue("--sc"),
|
||||
|
||||
accent: withOpacityValue("--a"),
|
||||
"accent-focus": withOpacityValue("--af", "--a"),
|
||||
"accent-content": withOpacityValue("--ac"),
|
||||
|
||||
neutral: withOpacityValue("--n"),
|
||||
"neutral-focus": withOpacityValue("--nf", "--n"),
|
||||
"neutral-content": withOpacityValue("--nc"),
|
||||
|
||||
"base-100": withOpacityValue("--b1"),
|
||||
"base-200": withOpacityValue("--b2", "--b1"),
|
||||
"base-300": withOpacityValue("--b3", "--b2"),
|
||||
"base-content": withOpacityValue("--bc"),
|
||||
|
||||
info: withOpacityValue("--in"),
|
||||
"info-content": withOpacityValue("--inc", "--nc"),
|
||||
|
||||
success: withOpacityValue("--su"),
|
||||
"success-content": withOpacityValue("--suc", "--nc"),
|
||||
|
||||
warning: withOpacityValue("--wa"),
|
||||
"warning-content": withOpacityValue("--wac", "--nc"),
|
||||
|
||||
error: withOpacityValue("--er"),
|
||||
"error-content": withOpacityValue("--erc", "--nc"),
|
||||
};
|
||||
|
||||
module.exports = colorObject;
|
|
@ -0,0 +1,434 @@
|
|||
module.exports = {
|
||||
"[data-theme=aqua]": {
|
||||
"color-scheme": "dark",
|
||||
primary: "#09ecf3",
|
||||
"primary-content": "#005355",
|
||||
secondary: "#966fb3",
|
||||
accent: "#ffe999",
|
||||
neutral: "#3b8ac4",
|
||||
"base-100": "#345da7",
|
||||
"info": "#2563eb",
|
||||
"success": "#16a34a",
|
||||
"warning": "#d97706",
|
||||
"error": "#dc2626",
|
||||
},
|
||||
"[data-theme=black]": {
|
||||
"color-scheme": "dark",
|
||||
primary: "#343232",
|
||||
secondary: "#343232",
|
||||
accent: "#343232",
|
||||
"base-100": "#000000",
|
||||
"base-200": "#0D0D0D",
|
||||
"base-300": "#1A1919",
|
||||
neutral: "#272626",
|
||||
"neutral-focus": "#343232",
|
||||
info: "#0000ff",
|
||||
success: "#008000",
|
||||
warning: "#ffff00",
|
||||
error: "#ff0000",
|
||||
"--rounded-box": "0",
|
||||
"--rounded-btn": "0",
|
||||
"--rounded-badge": "0",
|
||||
"--animation-btn": "0",
|
||||
"--animation-input": "0",
|
||||
"--btn-text-case": "lowercase",
|
||||
"--btn-focus-scale": "1",
|
||||
"--tab-radius": "0",
|
||||
},
|
||||
"[data-theme=bumblebee]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#e0a82e",
|
||||
"primary-content": "#181830",
|
||||
secondary: "#f9d72f",
|
||||
"secondary-content": "#181830",
|
||||
accent: "#181830",
|
||||
neutral: "#181830",
|
||||
"base-100": "#ffffff",
|
||||
},
|
||||
"[data-theme=cmyk]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#45AEEE",
|
||||
secondary: "#E8488A",
|
||||
accent: "#FFF232",
|
||||
neutral: "#1a1a1a",
|
||||
"base-100": "#ffffff",
|
||||
info: "#4AA8C0",
|
||||
success: "#823290",
|
||||
warning: "#EE8133",
|
||||
error: "#E93F33",
|
||||
},
|
||||
"[data-theme=corporate]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#4b6bfb",
|
||||
secondary: "#7b92b2",
|
||||
accent: "#67cba0",
|
||||
neutral: "#181a2a",
|
||||
"neutral-content": "#edf2f7",
|
||||
"base-100": "#ffffff",
|
||||
"base-content": "#181a2a",
|
||||
"--rounded-box": "0.25rem",
|
||||
"--rounded-btn": ".125rem",
|
||||
"--rounded-badge": ".125rem",
|
||||
"--animation-btn": "0",
|
||||
"--animation-input": "0",
|
||||
"--btn-focus-scale": "1",
|
||||
},
|
||||
"[data-theme=cupcake]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#65c3c8",
|
||||
secondary: "#ef9fbc",
|
||||
accent: "#eeaf3a",
|
||||
neutral: "#291334",
|
||||
"base-100": "#faf7f5",
|
||||
"base-200": "#efeae6",
|
||||
"base-300": "#e7e2df",
|
||||
"base-content": "#291334",
|
||||
"--rounded-btn": "1.9rem",
|
||||
"--tab-border": "2px",
|
||||
"--tab-radius": ".5rem",
|
||||
},
|
||||
"[data-theme=cyberpunk]": {
|
||||
"color-scheme": "light",
|
||||
fontFamily: "ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace",
|
||||
primary: "#ff7598",
|
||||
secondary: "#75d1f0",
|
||||
accent: "#c07eec",
|
||||
neutral: "#423f00",
|
||||
"neutral-content": "#ffee00",
|
||||
"base-100": "#ffee00",
|
||||
"--rounded-box": "0",
|
||||
"--rounded-btn": "0",
|
||||
"--rounded-badge": "0",
|
||||
"--tab-radius": "0",
|
||||
},
|
||||
"[data-theme=dark]": {
|
||||
"color-scheme": "dark",
|
||||
primary: "#661AE6",
|
||||
"primary-content": "#ffffff",
|
||||
secondary: "#D926AA",
|
||||
"secondary-content": "#ffffff",
|
||||
accent: "#1FB2A5",
|
||||
"accent-content": "#ffffff",
|
||||
neutral: "#191D24",
|
||||
"neutral-focus": "#111318",
|
||||
"neutral-content": "#A6ADBB",
|
||||
"base-100": "#2A303C",
|
||||
"base-200": "#242933",
|
||||
"base-300": "#20252E",
|
||||
"base-content": "#A6ADBB",
|
||||
},
|
||||
"[data-theme=dracula]": {
|
||||
"color-scheme": "dark",
|
||||
primary: "#ff79c6",
|
||||
secondary: "#bd93f9",
|
||||
accent: "#ffb86c",
|
||||
neutral: "#414558",
|
||||
"base-100": "#282a36",
|
||||
"base-content": "#f8f8f2",
|
||||
info: "#8be9fd",
|
||||
success: "#50fa7b",
|
||||
warning: "#f1fa8c",
|
||||
error: "#ff5555",
|
||||
},
|
||||
"[data-theme=emerald]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#66cc8a",
|
||||
"primary-content": "#223D30",
|
||||
secondary: "#377cfb",
|
||||
"secondary-content": "#f9fafb",
|
||||
accent: "#ea5234",
|
||||
"accent-content": "#f9fafb",
|
||||
neutral: "#333c4d",
|
||||
"neutral-content": "#f9fafb",
|
||||
"base-100": "#ffffff",
|
||||
"base-content": "#333c4d",
|
||||
"--animation-btn": "0",
|
||||
"--animation-input": "0",
|
||||
"--btn-focus-scale": "1",
|
||||
},
|
||||
"[data-theme=fantasy]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#6e0b75",
|
||||
secondary: "#007ebd",
|
||||
accent: "#f8860d",
|
||||
neutral: "#1f2937",
|
||||
"base-100": "#ffffff",
|
||||
"base-content": "#1f2937",
|
||||
},
|
||||
"[data-theme=forest]": {
|
||||
"color-scheme": "dark",
|
||||
primary: "#1eb854",
|
||||
"primary-content": "#c2ffd7",
|
||||
secondary: "#1fd65f",
|
||||
accent: "#d99330",
|
||||
neutral: "#110e0e",
|
||||
"base-100": "#171212",
|
||||
"--rounded-btn": "1.9rem",
|
||||
},
|
||||
"[data-theme=garden]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#5c7f67",
|
||||
secondary: "#ecf4e7",
|
||||
"secondary-content": "#24331a",
|
||||
accent: "#fae5e5",
|
||||
"accent-content": "#322020",
|
||||
neutral: "#5d5656",
|
||||
"neutral-content": "#e9e7e7",
|
||||
"base-100": "#e9e7e7",
|
||||
"base-content": "#100f0f",
|
||||
},
|
||||
"[data-theme=halloween]": {
|
||||
"color-scheme": "dark",
|
||||
primary: "#f28c18",
|
||||
"primary-content": "#131616",
|
||||
secondary: "#6d3a9c",
|
||||
accent: "#51a800",
|
||||
neutral: "#1b1d1d",
|
||||
"base-100": "#212121",
|
||||
info: "#2563eb",
|
||||
success: "#16a34a",
|
||||
warning: "#d97706",
|
||||
error: "#dc2626",
|
||||
},
|
||||
"[data-theme=light]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#570df8",
|
||||
"primary-content": "#ffffff",
|
||||
secondary: "#f000b8",
|
||||
"secondary-content": "#ffffff",
|
||||
accent: "#37cdbe",
|
||||
"accent-content": "#163835",
|
||||
neutral: "#3d4451",
|
||||
"neutral-content": "#ffffff",
|
||||
"base-100": "#ffffff",
|
||||
"base-200": "#F2F2F2",
|
||||
"base-300": "#E5E6E6",
|
||||
"base-content": "#1f2937",
|
||||
},
|
||||
"[data-theme=lofi]": {
|
||||
"color-scheme": "light",
|
||||
"primary": "#0D0D0D",
|
||||
"primary-content": "#ffffff",
|
||||
"secondary": "#1A1919",
|
||||
"secondary-content": "#ffffff",
|
||||
"accent": "#262626",
|
||||
"accent-content": "#ffffff",
|
||||
"neutral": "#000000",
|
||||
"neutral-content": "#ffffff",
|
||||
"base-100": "#ffffff",
|
||||
"base-200": "#F2F2F2",
|
||||
"base-300": "#E6E5E5",
|
||||
"base-content": "#000000",
|
||||
"info": "#0070F3",
|
||||
"info-content": "#ffffff",
|
||||
"success": "#21CC51",
|
||||
"success-content": "#ffffff",
|
||||
"warning": "#FF6154",
|
||||
"warning-content": "#ffffff",
|
||||
"error": "#DE1C8D",
|
||||
"error-content": "#ffffff",
|
||||
"--rounded-box": "0.25rem",
|
||||
"--rounded-btn": "0.125rem",
|
||||
"--rounded-badge": "0.125rem",
|
||||
"--animation-btn": "0",
|
||||
"--animation-input": "0",
|
||||
"--btn-focus-scale": "1",
|
||||
"--tab-radius": "0",
|
||||
},
|
||||
"[data-theme=luxury]": {
|
||||
"color-scheme": "dark",
|
||||
primary: "#ffffff",
|
||||
secondary: "#152747",
|
||||
accent: "#513448",
|
||||
neutral: "#171618",
|
||||
"neutral-content": "#dca54c",
|
||||
"base-100": "#09090b",
|
||||
"base-200": "#171618",
|
||||
"base-300": "#2e2d2f",
|
||||
"base-content": "#dca54c",
|
||||
info: "#66c6ff",
|
||||
success: "#87d039",
|
||||
warning: "#e2d562",
|
||||
error: "#ff6f6f",
|
||||
},
|
||||
"[data-theme=pastel]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#d1c1d7",
|
||||
secondary: "#f6cbd1",
|
||||
accent: "#b4e9d6",
|
||||
neutral: "#70acc7",
|
||||
"base-100": "#ffffff",
|
||||
"base-200": "#f9fafb",
|
||||
"base-300": "#d1d5db",
|
||||
"--rounded-btn": "1.9rem",
|
||||
},
|
||||
"[data-theme=retro]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#ef9995",
|
||||
"primary-content": "#282425",
|
||||
secondary: "#a4cbb4",
|
||||
"secondary-content": "#282425",
|
||||
accent: "#ebdc99",
|
||||
"accent-content": "#282425",
|
||||
neutral: "#7d7259",
|
||||
"neutral-content": "#e4d8b4",
|
||||
"base-100": "#e4d8b4",
|
||||
"base-200": "#d2c59d",
|
||||
"base-300": "#c6b386",
|
||||
"base-content": "#282425",
|
||||
"info": "#2563eb",
|
||||
"success": "#16a34a",
|
||||
"warning": "#d97706",
|
||||
"error": "#dc2626",
|
||||
"--rounded-box": "0.4rem",
|
||||
"--rounded-btn": "0.4rem",
|
||||
"--rounded-badge": "0.4rem",
|
||||
},
|
||||
"[data-theme=synthwave]": {
|
||||
"color-scheme": "dark",
|
||||
primary: "#e779c1",
|
||||
secondary: "#58c7f3",
|
||||
accent: "#f3cc30",
|
||||
neutral: "#20134e",
|
||||
"neutral-content": "#f9f7fd",
|
||||
"base-100": "#2d1b69",
|
||||
"base-content": "#f9f7fd",
|
||||
info: "#53c0f3",
|
||||
"info-content": "#201047",
|
||||
success: "#71ead2",
|
||||
"success-content": "#201047",
|
||||
warning: "#f3cc30",
|
||||
"warning-content": "#201047",
|
||||
error: "#e24056",
|
||||
"error-content": "#f9f7fd",
|
||||
},
|
||||
"[data-theme=valentine]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#e96d7b",
|
||||
secondary: "#a991f7",
|
||||
accent: "#88dbdd",
|
||||
neutral: "#af4670",
|
||||
"neutral-content": "#f0d6e8",
|
||||
"base-100": "#f0d6e8",
|
||||
"base-content": "#632c3b",
|
||||
"info": "#2563eb",
|
||||
"success": "#16a34a",
|
||||
"warning": "#d97706",
|
||||
"error": "#dc2626",
|
||||
"--rounded-btn": "1.9rem",
|
||||
},
|
||||
"[data-theme=wireframe]": {
|
||||
"color-scheme": "light",
|
||||
fontFamily: 'Chalkboard,comic sans ms,"sanssecondaryerif"',
|
||||
primary: "#b8b8b8",
|
||||
secondary: "#b8b8b8",
|
||||
accent: "#b8b8b8",
|
||||
neutral: "#ebebeb",
|
||||
"base-100": "#ffffff",
|
||||
"base-200": "#eeeeee",
|
||||
"base-300": "#dddddd",
|
||||
info: "#0000ff",
|
||||
success: "#008000",
|
||||
warning: "#a6a659",
|
||||
error: "#ff0000",
|
||||
"--rounded-box": "0.2rem",
|
||||
"--rounded-btn": "0.2rem",
|
||||
"--rounded-badge": "0.2rem",
|
||||
"--tab-radius": "0.2rem",
|
||||
},
|
||||
"[data-theme=autumn]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#8C0327",
|
||||
secondary: "#D85251",
|
||||
accent: "#D59B6A",
|
||||
neutral: "#826A5C",
|
||||
"base-100": "#f1f1f1",
|
||||
info: "#42ADBB",
|
||||
success: "#499380",
|
||||
warning: "#E97F14",
|
||||
error: "#DF1A2F",
|
||||
},
|
||||
"[data-theme=business]": {
|
||||
"color-scheme": "dark",
|
||||
primary: "#1C4E80",
|
||||
secondary: "#7C909A",
|
||||
accent: "#EA6947",
|
||||
neutral: "#23282E",
|
||||
"base-100": "#202020",
|
||||
info: "#0091D5",
|
||||
success: "#6BB187",
|
||||
warning: "#DBAE59",
|
||||
error: "#AC3E31",
|
||||
"--rounded-box": "0.25rem",
|
||||
"--rounded-btn": ".125rem",
|
||||
"--rounded-badge": ".125rem",
|
||||
},
|
||||
"[data-theme=acid]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#FF00F4",
|
||||
secondary: "#FF7400",
|
||||
accent: "#CBFD03",
|
||||
neutral: "#191A3F",
|
||||
"base-100": "#fafafa",
|
||||
info: "#3194F6",
|
||||
success: "#5FC992",
|
||||
warning: "#F7DE2D",
|
||||
error: "#E60300",
|
||||
"--rounded-box": "1.25rem",
|
||||
"--rounded-btn": "1rem",
|
||||
"--rounded-badge": "1rem",
|
||||
},
|
||||
"[data-theme=lemonade]": {
|
||||
"color-scheme": "light",
|
||||
primary: "#519903",
|
||||
secondary: "#E9E92E",
|
||||
accent: "#F7F9CA",
|
||||
neutral: "#191A3F",
|
||||
"base-100": "#ffffff",
|
||||
info: "#C8E1E7",
|
||||
success: "#DEF29F",
|
||||
warning: "#F7E589",
|
||||
error: "#F2B6B5",
|
||||
},
|
||||
"[data-theme=night]": {
|
||||
"color-scheme": "dark",
|
||||
"primary": "#38bdf8",
|
||||
"secondary": "#818CF8",
|
||||
"accent": "#F471B5",
|
||||
"neutral": "#1E293B",
|
||||
"neutral-focus": "#273449",
|
||||
"base-100": "#0F172A",
|
||||
"info": "#0CA5E9",
|
||||
"success": "#2DD4BF",
|
||||
"warning": "#F4BF50",
|
||||
"error": "#FB7085",
|
||||
},
|
||||
"[data-theme=coffee]": {
|
||||
"color-scheme": "dark",
|
||||
"primary": "#DB924B",
|
||||
"secondary": "#263E3F",
|
||||
"accent": "#10576D",
|
||||
"neutral": "#120C12",
|
||||
"base-100": "#20161F",
|
||||
"base-content": "#756E63",
|
||||
"info": "#8DCAC1",
|
||||
"success": "#9DB787",
|
||||
"warning": "#FFD25F",
|
||||
"error": "#FC9581",
|
||||
},
|
||||
"[data-theme=winter]": {
|
||||
"color-scheme": "light",
|
||||
"primary": "#047AFF",
|
||||
"secondary": "#463AA2",
|
||||
"accent": "#C148AC",
|
||||
"neutral": "#021431",
|
||||
"base-100": "#ffffff",
|
||||
"base-200": "#F2F7FF",
|
||||
"base-300": "#E3E9F4",
|
||||
"base-content": "#394E6A",
|
||||
"info": "#93E7FB",
|
||||
"success": "#81CFD1",
|
||||
"warning": "#EFD7BB",
|
||||
"error": "#E58B8B",
|
||||
},
|
||||
};
|
|
@ -0,0 +1,10 @@
|
|||
module.exports = {
|
||||
plugins: [
|
||||
require("postcss-import"),
|
||||
require("postcss-nested")({
|
||||
bubble: ["screen"],
|
||||
}),
|
||||
require("tailwindcss")("./src/components/tailwind.config.js"),
|
||||
require("autoprefixer"),
|
||||
],
|
||||
};
|
|
@ -0,0 +1,15 @@
|
|||
.alert {
|
||||
@apply bg-base-200 p-4 rounded-box;
|
||||
&-info {
|
||||
@apply bg-info text-info-content;
|
||||
}
|
||||
&-success {
|
||||
@apply bg-success text-success-content;
|
||||
}
|
||||
&-warning {
|
||||
@apply bg-warning text-warning-content;
|
||||
}
|
||||
&-error {
|
||||
@apply bg-error text-error-content;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
.avatar-group {
|
||||
@apply flex overflow-hidden;
|
||||
:where(.avatar) {
|
||||
@apply overflow-hidden rounded-full border-4 border-base-100;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,117 @@
|
|||
.badge {
|
||||
@apply border border-neutral bg-neutral text-neutral-content rounded-badge;
|
||||
&-primary {
|
||||
@apply border-primary bg-primary text-primary-content;
|
||||
}
|
||||
&-secondary {
|
||||
@apply border-secondary bg-secondary text-secondary-content;
|
||||
}
|
||||
&-accent {
|
||||
@apply border-accent bg-accent text-accent-content;
|
||||
}
|
||||
&-info {
|
||||
@apply border-transparent bg-info text-info-content;
|
||||
}
|
||||
&-success {
|
||||
@apply border-transparent bg-success text-success-content;
|
||||
}
|
||||
&-warning {
|
||||
@apply border-transparent bg-warning text-warning-content;
|
||||
}
|
||||
&-error {
|
||||
@apply border-transparent bg-error text-error-content;
|
||||
}
|
||||
&-ghost {
|
||||
@apply border-base-200 bg-base-200 text-base-content;
|
||||
}
|
||||
|
||||
&-outline {
|
||||
@apply border-current border-opacity-50 bg-transparent text-current;
|
||||
&.badge-primary {
|
||||
@apply text-primary;
|
||||
}
|
||||
&.badge-secondary {
|
||||
@apply text-secondary;
|
||||
}
|
||||
&.badge-accent {
|
||||
@apply text-accent;
|
||||
}
|
||||
&.badge-info {
|
||||
@apply text-info;
|
||||
}
|
||||
&.badge-success {
|
||||
@apply text-success;
|
||||
}
|
||||
&.badge-warning {
|
||||
@apply text-warning;
|
||||
}
|
||||
&.badge-error {
|
||||
@apply text-error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn-outline {
|
||||
.badge {
|
||||
@apply border-neutral-focus text-neutral-content;
|
||||
}
|
||||
&.btn-primary .badge {
|
||||
@apply border-primary bg-primary text-primary-content;
|
||||
}
|
||||
&.btn-secondary .badge {
|
||||
@apply border-secondary bg-secondary text-secondary-content;
|
||||
}
|
||||
&.btn-accent .badge {
|
||||
@apply border-accent bg-accent text-accent-content;
|
||||
}
|
||||
|
||||
.badge.outline {
|
||||
@apply border-neutral-focus bg-transparent;
|
||||
}
|
||||
&.btn-primary .badge-outline {
|
||||
@apply border-primary bg-transparent text-primary;
|
||||
}
|
||||
&.btn-secondary .badge-outline {
|
||||
@apply border-secondary bg-transparent text-secondary;
|
||||
}
|
||||
&.btn-accent .badge-outline {
|
||||
@apply border-accent bg-transparent text-accent;
|
||||
}
|
||||
&.btn-info .badge-outline {
|
||||
@apply border-info bg-transparent text-info;
|
||||
}
|
||||
&.btn-success .badge-outline {
|
||||
@apply border-success bg-transparent text-success;
|
||||
}
|
||||
&.btn-warning .badge-outline {
|
||||
@apply border-warning bg-transparent text-warning;
|
||||
}
|
||||
&.btn-error .badge-outline {
|
||||
@apply border-error bg-transparent text-error;
|
||||
}
|
||||
|
||||
&:hover .badge {
|
||||
@apply border-base-200 bg-base-200 text-base-content;
|
||||
&.outline {
|
||||
@apply border-base-200 text-neutral-content;
|
||||
}
|
||||
}
|
||||
&.btn-primary:hover .badge {
|
||||
@apply border-primary-content bg-primary-content text-primary;
|
||||
&.outline {
|
||||
@apply border-primary-content bg-primary-focus text-primary-content;
|
||||
}
|
||||
}
|
||||
&.btn-secondary:hover .badge {
|
||||
@apply border-secondary-content bg-secondary-content text-secondary;
|
||||
&.outline {
|
||||
@apply border-secondary-content bg-secondary-focus text-secondary-content;
|
||||
}
|
||||
}
|
||||
&.btn-accent:hover .badge {
|
||||
@apply border-accent-content bg-accent-content text-accent;
|
||||
&.outline {
|
||||
@apply border-accent-content bg-accent-focus text-accent-content;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
.btm-nav {
|
||||
@apply h-16 bg-base-100 text-current;
|
||||
&>* {
|
||||
@apply border-current;
|
||||
|
||||
&:not(.active) {
|
||||
@apply pt-0.5;
|
||||
}
|
||||
|
||||
/* active */
|
||||
&:where(.active) {
|
||||
@apply bg-base-100 border-t-2;
|
||||
}
|
||||
|
||||
/* disabled */
|
||||
&.disabled,
|
||||
&.disabled:hover,
|
||||
&[disabled],
|
||||
&[disabled]:hover {
|
||||
@apply border-opacity-0 bg-neutral bg-opacity-10 text-base-content text-opacity-20 pointer-events-none;
|
||||
}
|
||||
.label {
|
||||
@apply text-base;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
.breadcrumbs {
|
||||
@apply py-2;
|
||||
& > ul {
|
||||
& > li {
|
||||
& > a {
|
||||
&:focus {
|
||||
@apply outline-none;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid currentColor;
|
||||
outline-offset: 2px;
|
||||
}
|
||||
}
|
||||
& + *:before {
|
||||
content: "";
|
||||
@apply ml-2 mr-3 block h-1.5 w-1.5 rotate-45 transform opacity-40;
|
||||
border-top: 1px solid;
|
||||
border-right: 1px solid;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[dir="rtl"] .breadcrumbs > ul > li + *:before {
|
||||
--tw-rotate: -135deg;
|
||||
}
|
|
@ -0,0 +1,238 @@
|
|||
.btn {
|
||||
@apply font-semibold uppercase no-underline;
|
||||
border-width: var(--border-btn, 1px);
|
||||
animation: button-pop var(--animation-btn, 0.25s) ease-out;
|
||||
text-transform: var(--btn-text-case, uppercase);
|
||||
&:active:hover,
|
||||
&:active:focus {
|
||||
animation: none;
|
||||
}
|
||||
&:active:hover,
|
||||
&:active:focus {
|
||||
transform: scale(var(--btn-focus-scale, 0.95));
|
||||
}
|
||||
|
||||
/* default btn */
|
||||
& {
|
||||
@apply border-neutral bg-neutral text-neutral-content no-underline;
|
||||
&:hover,
|
||||
&-active {
|
||||
@apply border-neutral-focus bg-neutral-focus;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--nf));
|
||||
outline-offset: 2px;
|
||||
}
|
||||
}
|
||||
/* brand colors */
|
||||
&-primary {
|
||||
@apply border-primary bg-primary text-primary-content;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-primary-focus bg-primary-focus;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--p));
|
||||
}
|
||||
}
|
||||
&-secondary {
|
||||
@apply border-secondary bg-secondary text-secondary-content;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-secondary-focus bg-secondary-focus;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--s));
|
||||
}
|
||||
}
|
||||
&-accent {
|
||||
@apply border-accent bg-accent text-accent-content;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-accent-focus bg-accent-focus;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--a));
|
||||
}
|
||||
}
|
||||
|
||||
/* btn with state colors */
|
||||
&-info {
|
||||
@apply border-info bg-info text-info-content;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-info bg-info;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--in));
|
||||
}
|
||||
}
|
||||
&-success {
|
||||
@apply border-success bg-success text-success-content;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-success bg-success;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--su));
|
||||
}
|
||||
}
|
||||
&-warning {
|
||||
@apply border-warning bg-warning text-warning-content;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-warning bg-warning;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--wa));
|
||||
}
|
||||
}
|
||||
&-error {
|
||||
@apply border-error bg-error text-error-content;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-error bg-error;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--er));
|
||||
}
|
||||
}
|
||||
|
||||
/* glass */
|
||||
&.glass {
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
--glass-opacity: 25%;
|
||||
--glass-border-opacity: 15%;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid currentColor;
|
||||
}
|
||||
}
|
||||
|
||||
/* btn variants */
|
||||
&-ghost {
|
||||
@apply border border-transparent bg-transparent text-current;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-opacity-0 bg-base-content bg-opacity-20;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid currentColor;
|
||||
}
|
||||
}
|
||||
&-link {
|
||||
@apply border-transparent bg-transparent text-primary underline;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-transparent bg-transparent underline;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid currentColor;
|
||||
}
|
||||
}
|
||||
|
||||
/* outline */
|
||||
&-outline {
|
||||
@apply border-current bg-transparent text-base-content;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-base-content bg-base-content text-base-100;
|
||||
}
|
||||
&.btn-primary {
|
||||
@apply text-primary;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-primary-focus bg-primary-focus text-primary-content;
|
||||
}
|
||||
}
|
||||
&.btn-secondary {
|
||||
@apply text-secondary;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-secondary-focus bg-secondary-focus text-secondary-content;
|
||||
}
|
||||
}
|
||||
&.btn-accent {
|
||||
@apply text-accent;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-accent-focus bg-accent-focus text-accent-content;
|
||||
}
|
||||
}
|
||||
&.btn-success {
|
||||
@apply text-success;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-success bg-success text-success-content;
|
||||
}
|
||||
}
|
||||
&.btn-info {
|
||||
@apply text-info;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-info bg-info text-info-content;
|
||||
}
|
||||
}
|
||||
&.btn-warning {
|
||||
@apply text-warning;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-warning bg-warning text-warning-content;
|
||||
}
|
||||
}
|
||||
&.btn-error {
|
||||
@apply text-error;
|
||||
&:hover,
|
||||
&.btn-active {
|
||||
@apply border-error bg-error text-error-content;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* disabled */
|
||||
&-disabled,
|
||||
&-disabled:hover,
|
||||
&[disabled],
|
||||
&[disabled]:hover {
|
||||
@apply border-opacity-0 bg-neutral bg-opacity-20 text-base-content text-opacity-20;
|
||||
}
|
||||
|
||||
/* loading */
|
||||
&.loading {
|
||||
&.btn-square:before,
|
||||
&.btn-circle:before {
|
||||
@apply mr-0;
|
||||
}
|
||||
&.btn-xl:before,
|
||||
&.btn-lg:before {
|
||||
@apply h-5 w-5;
|
||||
}
|
||||
&.btn-sm:before,
|
||||
&.btn-xs:before {
|
||||
@apply h-3 w-3;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* group */
|
||||
.btn-group {
|
||||
& > input[type="radio"]:checked.btn,
|
||||
& > .btn-active {
|
||||
@apply border-primary bg-primary text-primary-content;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--p));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes button-pop {
|
||||
0% {
|
||||
transform: scale(var(--btn-focus-scale, 0.95));
|
||||
}
|
||||
40% {
|
||||
transform: scale(1.02);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
.card {
|
||||
@apply rounded-box;
|
||||
:where(figure:first-child) {
|
||||
@apply overflow-hidden;
|
||||
border-start-start-radius: inherit;
|
||||
border-start-end-radius: inherit;
|
||||
border-end-start-radius: unset;
|
||||
border-end-end-radius: unset;
|
||||
}
|
||||
:where(figure:last-child) {
|
||||
@apply overflow-hidden;
|
||||
border-start-start-radius: unset;
|
||||
border-start-end-radius: unset;
|
||||
border-end-start-radius: inherit;
|
||||
border-end-end-radius: inherit;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid currentColor;
|
||||
outline-offset: 2px;
|
||||
}
|
||||
&.bordered {
|
||||
@apply border border-base-200;
|
||||
}
|
||||
&-bordered {
|
||||
@apply border border-base-200;
|
||||
}
|
||||
&.compact {
|
||||
.card-body {
|
||||
@apply p-4 text-sm;
|
||||
}
|
||||
}
|
||||
&-body {
|
||||
padding: var(--padding-card, 2rem);
|
||||
@apply flex flex-col gap-2;
|
||||
}
|
||||
&-title {
|
||||
@apply flex items-center gap-2 text-xl font-semibold;
|
||||
}
|
||||
&.image-full {
|
||||
&:before {
|
||||
@apply z-10 bg-neutral opacity-75 rounded-box;
|
||||
}
|
||||
}
|
||||
&.image-full > &-body {
|
||||
@apply z-20 text-neutral-content;
|
||||
}
|
||||
&.image-full {
|
||||
:where(figure) {
|
||||
@apply overflow-hidden;
|
||||
border-radius: inherit;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
.carousel {
|
||||
-ms-overflow-style: none;
|
||||
scrollbar-width: none;
|
||||
&::-webkit-scrollbar {
|
||||
@apply hidden;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
.chat {
|
||||
&-bubble {
|
||||
@apply rounded-box;
|
||||
min-height: 2.75rem;
|
||||
min-width: 2.75rem;
|
||||
|
||||
/* default */
|
||||
& {
|
||||
@apply bg-neutral text-neutral-content;
|
||||
}
|
||||
|
||||
/* brand colors */
|
||||
&-primary {
|
||||
@apply bg-primary text-primary-content;
|
||||
}
|
||||
&-secondary {
|
||||
@apply bg-secondary text-secondary-content;
|
||||
}
|
||||
&-accent {
|
||||
@apply bg-accent text-accent-content;
|
||||
}
|
||||
|
||||
/* state colors */
|
||||
&-info {
|
||||
@apply bg-info text-info-content;
|
||||
}
|
||||
&-success {
|
||||
@apply bg-success text-success-content;
|
||||
}
|
||||
&-warning {
|
||||
@apply bg-warning text-warning-content;
|
||||
}
|
||||
&-error {
|
||||
@apply bg-error text-error-content;
|
||||
}
|
||||
}
|
||||
|
||||
&-start .chat-bubble {
|
||||
@apply rounded-bl-none;
|
||||
&:before {
|
||||
left: -0.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
&-end .chat-bubble {
|
||||
@apply rounded-br-none;
|
||||
&:before {
|
||||
left: 100%;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,142 @@
|
|||
.checkbox {
|
||||
--chkbg: var(--bc);
|
||||
--chkfg: var(--b1);
|
||||
@apply h-6 w-6 cursor-pointer appearance-none border border-base-content border-opacity-20 rounded-btn;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--bc));
|
||||
outline-offset: 2px;
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked="true"] {
|
||||
@apply bg-base-content bg-no-repeat;
|
||||
animation: checkmark var(--animation-input, 0.2s) ease-in-out;
|
||||
background-image: linear-gradient(-45deg, transparent 65%, hsl(var(--chkbg)) 65.99%), linear-gradient(45deg, transparent 75%, hsl(var(--chkbg)) 75.99%), linear-gradient(-45deg, hsl(var(--chkbg)) 40%, transparent 40.99%), linear-gradient(45deg, hsl(var(--chkbg)) 30%, hsl(var(--chkfg)) 30.99%, hsl(var(--chkfg)) 40%, transparent 40.99%), linear-gradient(-45deg, hsl(var(--chkfg)) 50%, hsl(var(--chkbg)) 50.99%);
|
||||
}
|
||||
&:indeterminate {
|
||||
@apply bg-base-content bg-no-repeat;
|
||||
animation: checkmark var(--animation-input, 0.2s) ease-in-out;
|
||||
background-image: linear-gradient(90deg, transparent 80%, hsl(var(--chkbg)) 80%), linear-gradient(-90deg, transparent 80%, hsl(var(--chkbg)) 80%), linear-gradient(0deg, hsl(var(--chkbg)) 43%, hsl(var(--chkfg)) 43%, hsl(var(--chkfg)) 57%, hsl(var(--chkbg)) 57%);
|
||||
}
|
||||
&-primary {
|
||||
--chkbg: var(--p);
|
||||
--chkfg: var(--pc);
|
||||
@apply border-primary hover:border-primary;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--p));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked="true"] {
|
||||
@apply border-primary bg-primary text-primary-content;
|
||||
}
|
||||
}
|
||||
&-secondary {
|
||||
--chkbg: var(--s);
|
||||
--chkfg: var(--sc);
|
||||
@apply border-secondary hover:border-secondary;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--s));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked="true"] {
|
||||
@apply border-secondary bg-secondary text-secondary-content;
|
||||
}
|
||||
}
|
||||
&-accent {
|
||||
--chkbg: var(--a);
|
||||
--chkfg: var(--ac);
|
||||
@apply border-accent hover:border-accent;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--a));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked="true"] {
|
||||
@apply border-accent bg-accent text-accent-content;
|
||||
}
|
||||
}
|
||||
&-success {
|
||||
--chkbg: var(--su);
|
||||
--chkfg: var(--suc);
|
||||
@apply border-success hover:border-success;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--su));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
@apply border-success bg-success text-success-content;
|
||||
}
|
||||
}
|
||||
&-warning {
|
||||
--chkbg: var(--wa);
|
||||
--chkfg: var(--wac);
|
||||
@apply border-warning hover:border-warning;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--wa));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
@apply border-warning bg-warning text-warning-content;
|
||||
}
|
||||
}
|
||||
&-info {
|
||||
--chkbg: var(--in);
|
||||
--chkfg: var(--inc);
|
||||
@apply border-info hover:border-info;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--in));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
@apply border-info bg-info text-info-content;
|
||||
}
|
||||
}
|
||||
&-error {
|
||||
--chkbg: var(--er);
|
||||
--chkfg: var(--erc);
|
||||
@apply border-error hover:border-error;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--er));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
@apply border-error bg-error text-error-content;
|
||||
}
|
||||
}
|
||||
&:disabled {
|
||||
@apply cursor-not-allowed border-transparent bg-base-content opacity-20;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes checkmark {
|
||||
0% {
|
||||
background-position-y: 5px;
|
||||
}
|
||||
50% {
|
||||
background-position-y: -2px;
|
||||
}
|
||||
100% {
|
||||
background-position-y: 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* backward compatibility */
|
||||
.checkbox-mark {
|
||||
@apply hidden;
|
||||
}
|
||||
|
||||
[dir="rtl"] {
|
||||
.checkbox {
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked="true"] {
|
||||
background-image: linear-gradient(45deg, transparent 65%, hsl(var(--chkbg)) 65.99%), linear-gradient(-45deg, transparent 75%, hsl(var(--chkbg)) 75.99%), linear-gradient(45deg, hsl(var(--chkbg)) 40%, transparent 40.99%), linear-gradient(-45deg, hsl(var(--chkbg)) 30%, hsl(var(--chkfg)) 30.99%, hsl(var(--chkfg)) 40%, transparent 40.99%), linear-gradient(45deg, hsl(var(--chkfg)) 50%, hsl(var(--chkbg)) 50.99%);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
.collapse:focus-visible {
|
||||
outline: 2px solid hsl(var(--nf));
|
||||
outline-offset: 2px;
|
||||
}
|
||||
.collapse-arrow .collapse-title:after {
|
||||
@apply absolute block h-2 w-2 transition-all ease-in-out rotate-[45deg] translate-y-[-100%];
|
||||
transition-duration: 0.2s;
|
||||
top: 50%;
|
||||
right: 1.4rem;
|
||||
content: "";
|
||||
transform-origin: 75% 75%;
|
||||
box-shadow: 2px 2px;
|
||||
pointer-events: none;
|
||||
}
|
||||
[dir="rtl"] .collapse-arrow .collapse-title:after {
|
||||
--tw-rotate: -45deg;
|
||||
}
|
||||
.collapse-plus .collapse-title:after {
|
||||
@apply absolute block h-2 w-2 transition-all duration-300 ease-in-out;
|
||||
top: 0.9rem;
|
||||
right: 1.4rem;
|
||||
content: "+";
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.collapse:not(.collapse-open):not(.collapse-close) input[type="checkbox"],
|
||||
.collapse:not(.collapse-open):not(.collapse-close) .collapse-title {
|
||||
@apply cursor-pointer;
|
||||
}
|
||||
.collapse:focus:not(.collapse-open):not(.collapse-close) .collapse-title {
|
||||
cursor: unset;
|
||||
}
|
||||
.collapse-title {
|
||||
@apply relative;
|
||||
}
|
||||
:where(.collapse > input[type="checkbox"]) {
|
||||
z-index: 1;
|
||||
}
|
||||
.collapse-title,
|
||||
:where(.collapse > input[type="checkbox"]) {
|
||||
@apply w-full p-4 pr-12;
|
||||
min-height: 3.75rem;
|
||||
transition: background-color 0.2s ease-in-out;
|
||||
}
|
||||
/*
|
||||
.collapse-open :where(.collapse-title),
|
||||
.collapse:focus:not(.collapse-close) :where(.collapse-title),
|
||||
.collapse:not(.collapse-close) :where(input[type="checkbox"]:checked ~ .collapse-title) {
|
||||
@apply bg-base-content bg-opacity-10;
|
||||
} */
|
||||
|
||||
.collapse-content {
|
||||
@apply px-4;
|
||||
cursor: unset;
|
||||
transition: padding 0.2s ease-in-out, background-color 0.2s ease-in-out;
|
||||
}
|
||||
.collapse-open :where(.collapse-content),
|
||||
.collapse:focus:not(.collapse-close) :where(.collapse-content),
|
||||
.collapse:not(.collapse-close) :where(input[type="checkbox"]:checked ~ .collapse-content) {
|
||||
@apply pb-4;
|
||||
transition: padding 0.2s ease-in-out, background-color 0.2s ease-in-out;
|
||||
}
|
||||
|
||||
.collapse-open.collapse-arrow .collapse-title:after,
|
||||
.collapse-arrow:focus:not(.collapse-close) .collapse-title:after,
|
||||
.collapse-arrow:not(.collapse-close) input[type="checkbox"]:checked ~ .collapse-title:after {
|
||||
@apply rotate-[225deg] translate-y-[-50%];
|
||||
}
|
||||
[dir="rtl"] .collapse-open.collapse-arrow .collapse-title:after,
|
||||
[dir="rtl"] .collapse-arrow:focus:not(.collapse-close) .collapse-title:after,
|
||||
[dir="rtl"] .collapse-arrow:not(.collapse-close) input[type="checkbox"]:checked ~ .collapse-title:after {
|
||||
--tw-rotate: 135deg;
|
||||
}
|
||||
.collapse-open.collapse-plus .collapse-title:after,
|
||||
.collapse-plus:focus:not(.collapse-close) .collapse-title:after,
|
||||
.collapse-plus:not(.collapse-close) input[type="checkbox"]:checked ~ .collapse-title:after {
|
||||
content: "−";
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
.countdown {
|
||||
& > * {
|
||||
&:before {
|
||||
text-align: center;
|
||||
transition: all 1s cubic-bezier(1, 0, 0, 1);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
.divider {
|
||||
@apply my-4 h-4 whitespace-nowrap;
|
||||
&:before {
|
||||
@apply bg-base-content bg-opacity-10;
|
||||
}
|
||||
&:after {
|
||||
@apply bg-base-content bg-opacity-10;
|
||||
}
|
||||
&:not(:empty) {
|
||||
@apply gap-4;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
.drawer.drawer-end > .drawer-toggle:checked ~ .drawer-content {
|
||||
@apply -translate-x-2;
|
||||
}
|
||||
.drawer-toggle {
|
||||
& ~ .drawer-content {
|
||||
@apply transition-all duration-300 ease-in-out;
|
||||
}
|
||||
& ~ .drawer-side {
|
||||
& > .drawer-overlay {
|
||||
@apply cursor-pointer bg-neutral-focus transition-all duration-300 ease-in-out;
|
||||
}
|
||||
& > .drawer-overlay + * {
|
||||
@apply transition-all duration-300 ease-in-out;
|
||||
}
|
||||
}
|
||||
&:checked {
|
||||
& ~ .drawer-content {
|
||||
@apply translate-x-2;
|
||||
}
|
||||
& ~ .drawer-side {
|
||||
& > .drawer-overlay {
|
||||
opacity: 0.999999; /* 1 causes a bug on chrome 🤷♂️ */
|
||||
@apply bg-opacity-40;
|
||||
}
|
||||
}
|
||||
}
|
||||
&:focus-visible {
|
||||
& ~ .drawer-content .drawer-button {
|
||||
outline: 2px solid hsl(var(--nf));
|
||||
outline-offset: 2px;
|
||||
&.btn-primary {
|
||||
outline: 2px solid hsl(var(--p));
|
||||
}
|
||||
&.btn-secondary {
|
||||
outline: 2px solid hsl(var(--s));
|
||||
}
|
||||
&.btn-accent {
|
||||
outline: 2px solid hsl(var(--a));
|
||||
}
|
||||
&.btn-info {
|
||||
outline: 2px solid hsl(var(--in));
|
||||
}
|
||||
&.btn-success {
|
||||
outline: 2px solid hsl(var(--su));
|
||||
}
|
||||
&.btn-warning {
|
||||
outline: 2px solid hsl(var(--wa));
|
||||
}
|
||||
&.btn-error {
|
||||
outline: 2px solid hsl(var(--er));
|
||||
}
|
||||
&.glass {
|
||||
outline: 2px solid currentColor;
|
||||
}
|
||||
&.btn-ghost {
|
||||
outline: 2px solid currentColor;
|
||||
}
|
||||
&.btn-link {
|
||||
outline: 2px solid currentColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@media (min-width: 1024px) {
|
||||
.drawer-mobile {
|
||||
& > .drawer-toggle {
|
||||
&:checked {
|
||||
& ~ .drawer-content {
|
||||
@apply translate-x-0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
.dropdown .dropdown-content {
|
||||
@apply origin-top scale-95 transform transition duration-200 ease-in-out;
|
||||
}
|
||||
.dropdown-bottom .dropdown-content {
|
||||
@apply origin-top;
|
||||
}
|
||||
.dropdown-top .dropdown-content {
|
||||
@apply origin-bottom;
|
||||
}
|
||||
.dropdown-left .dropdown-content {
|
||||
@apply origin-right;
|
||||
}
|
||||
.dropdown-right .dropdown-content {
|
||||
@apply origin-left;
|
||||
}
|
||||
.dropdown.dropdown-open .dropdown-content,
|
||||
.dropdown.dropdown-hover:hover .dropdown-content,
|
||||
.dropdown:focus .dropdown-content,
|
||||
.dropdown:focus-within .dropdown-content {
|
||||
@apply scale-100;
|
||||
}
|
|
@ -0,0 +1,96 @@
|
|||
.file-input {
|
||||
@apply border border-base-content border-opacity-0 bg-base-100 rounded-btn text-base overflow-hidden;
|
||||
&::file-selector-button {
|
||||
@apply font-semibold uppercase no-underline border-neutral bg-neutral text-neutral-content;
|
||||
border-width: var(--border-btn, 1px);
|
||||
animation: button-pop var(--animation-btn, 0.25s) ease-out;
|
||||
text-transform: var(--btn-text-case, uppercase);
|
||||
}
|
||||
&-bordered {
|
||||
@apply border-opacity-20;
|
||||
}
|
||||
&:focus {
|
||||
outline: 2px solid hsla(var(--bc) / 0.2);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
&-ghost {
|
||||
@apply bg-opacity-5;
|
||||
&:focus {
|
||||
@apply bg-opacity-100 text-base-content;
|
||||
box-shadow: none;
|
||||
}
|
||||
&::file-selector-button {
|
||||
@apply border border-transparent bg-transparent text-current;
|
||||
}
|
||||
}
|
||||
&-primary {
|
||||
@apply border-primary;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--p));
|
||||
}
|
||||
&::file-selector-button {
|
||||
@apply border-primary bg-primary text-primary-content;
|
||||
}
|
||||
}
|
||||
&-secondary {
|
||||
@apply border-secondary;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--s));
|
||||
}
|
||||
&::file-selector-button {
|
||||
@apply border-secondary bg-secondary text-secondary-content;
|
||||
}
|
||||
}
|
||||
&-accent {
|
||||
@apply border-accent;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--a));
|
||||
}
|
||||
&::file-selector-button {
|
||||
@apply border-accent bg-accent text-accent-content;
|
||||
}
|
||||
}
|
||||
&-info {
|
||||
@apply border-info;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--in));
|
||||
}
|
||||
&::file-selector-button {
|
||||
@apply border-info bg-info text-info-content;
|
||||
}
|
||||
}
|
||||
&-success {
|
||||
@apply border-success;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--su));
|
||||
}
|
||||
&::file-selector-button {
|
||||
@apply border-success bg-success text-success-content;
|
||||
}
|
||||
}
|
||||
&-warning {
|
||||
@apply border-warning;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--wa));
|
||||
}
|
||||
&::file-selector-button {
|
||||
@apply border-warning bg-warning text-warning-content;
|
||||
}
|
||||
}
|
||||
&-error {
|
||||
@apply border-error;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--er));
|
||||
}
|
||||
&::file-selector-button {
|
||||
@apply border-error bg-error text-error-content;
|
||||
}
|
||||
}
|
||||
&-disabled,
|
||||
&[disabled] {
|
||||
@apply cursor-not-allowed border-base-200 bg-base-200 text-opacity-20 placeholder-base-content placeholder-opacity-20;
|
||||
&::file-selector-button {
|
||||
@apply border-opacity-0 bg-neutral bg-opacity-20 text-base-content text-opacity-20;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
.footer {
|
||||
@apply gap-y-10 gap-x-4 text-sm;
|
||||
& > * {
|
||||
@apply gap-2;
|
||||
}
|
||||
&-title {
|
||||
@apply mb-2 font-bold uppercase opacity-50;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
.label {
|
||||
@apply px-1 py-2;
|
||||
&-text {
|
||||
@apply text-sm text-base-content;
|
||||
}
|
||||
&-text-alt {
|
||||
@apply text-xs text-base-content;
|
||||
}
|
||||
a {
|
||||
@apply hover:text-base-content;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
.hero {
|
||||
&-overlay {
|
||||
@apply bg-neutral bg-opacity-50;
|
||||
}
|
||||
&-content {
|
||||
@apply max-w-7xl gap-4 p-4;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
.input {
|
||||
@apply border border-base-content border-opacity-0 bg-base-100 rounded-btn text-base;
|
||||
&[list]::-webkit-calendar-picker-indicator {
|
||||
line-height: 1em;
|
||||
}
|
||||
&-bordered {
|
||||
@apply border-opacity-20;
|
||||
}
|
||||
&:focus {
|
||||
outline: 2px solid hsla(var(--bc) / 0.2);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
&-ghost {
|
||||
@apply bg-opacity-5;
|
||||
&:focus {
|
||||
@apply bg-opacity-100 text-base-content;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
&-primary {
|
||||
@apply border-primary;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--p));
|
||||
}
|
||||
}
|
||||
&-secondary {
|
||||
@apply border-secondary;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--s));
|
||||
}
|
||||
}
|
||||
&-accent {
|
||||
@apply border-accent;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--a));
|
||||
}
|
||||
}
|
||||
&-info {
|
||||
@apply border-info;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--in));
|
||||
}
|
||||
}
|
||||
&-success {
|
||||
@apply border-success;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--su));
|
||||
}
|
||||
}
|
||||
&-warning {
|
||||
@apply border-warning;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--wa));
|
||||
}
|
||||
}
|
||||
&-error {
|
||||
@apply border-error;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--er));
|
||||
}
|
||||
}
|
||||
&-disabled,
|
||||
&[disabled] {
|
||||
@apply cursor-not-allowed border-base-200 bg-base-200 text-opacity-20 placeholder-base-content placeholder-opacity-20;
|
||||
}
|
||||
/* &::-webkit-calendar-picker-indicator {
|
||||
display: none;
|
||||
} */
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
.kbd {
|
||||
@apply border border-base-content border-opacity-20 bg-base-200 px-2 rounded-btn;
|
||||
border-bottom-width: 2px;
|
||||
min-height: 2.2em;
|
||||
min-width: 2.2em;
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
.link {
|
||||
&-primary {
|
||||
@apply text-primary hover:text-primary-focus;
|
||||
}
|
||||
&-secondary {
|
||||
@apply text-secondary hover:text-secondary-focus;
|
||||
}
|
||||
&-accent {
|
||||
@apply text-accent hover:text-accent-focus;
|
||||
}
|
||||
&-neutral {
|
||||
@apply text-neutral hover:text-neutral-focus;
|
||||
}
|
||||
&-success {
|
||||
@apply text-success hover:text-success;
|
||||
}
|
||||
&-info {
|
||||
@apply text-info hover:text-info;
|
||||
}
|
||||
&-warning {
|
||||
@apply text-warning hover:text-warning;
|
||||
}
|
||||
&-error {
|
||||
@apply text-error hover:text-error;
|
||||
}
|
||||
&:focus {
|
||||
@apply outline-none;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid currentColor;
|
||||
outline-offset: 2px;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
.mask {
|
||||
&-squircle {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 0C20 0 0 20 0 100s20 100 100 100 100-20 100-100S180 0 100 0Z'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-decagon {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='192' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 0 58.779 19.098 36.327 50v61.804l-36.327 50L96 200l-58.779-19.098-36.327-50V69.098l36.327-50z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-diamond {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m100 0 100 100-100 100L0 100z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-heart {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='200' height='185' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 184.606a15.384 15.384 0 0 1-8.653-2.678C53.565 156.28 37.205 138.695 28.182 127.7 8.952 104.264-.254 80.202.005 54.146.308 24.287 24.264 0 53.406 0c21.192 0 35.869 11.937 44.416 21.879a2.884 2.884 0 0 0 4.356 0C110.725 11.927 125.402 0 146.594 0c29.142 0 53.098 24.287 53.4 54.151.26 26.061-8.956 50.122-28.176 73.554-9.023 10.994-25.383 28.58-63.165 54.228a15.384 15.384 0 0 1-8.653 2.673Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-hexagon {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='182' height='201' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M.3 65.486c0-9.196 6.687-20.063 14.211-25.078l61.86-35.946c8.36-5.016 20.899-5.016 29.258 0l61.86 35.946c8.36 5.015 14.211 15.882 14.211 25.078v71.055c0 9.196-6.687 20.063-14.211 25.079l-61.86 35.945c-8.36 4.18-20.899 4.18-29.258 0L14.51 161.62C6.151 157.44.3 145.737.3 136.54V65.486Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-hexagon-2 {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='200' height='182' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M64.786 181.4c-9.196 0-20.063-6.687-25.079-14.21L3.762 105.33c-5.016-8.36-5.016-20.9 0-29.259l35.945-61.86C44.723 5.851 55.59 0 64.786 0h71.055c9.196 0 20.063 6.688 25.079 14.211l35.945 61.86c4.18 8.36 4.18 20.899 0 29.258l-35.945 61.86c-4.18 8.36-15.883 14.211-25.079 14.211H64.786Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-circle {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='black' cx='100' cy='100' r='100' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-parallelogram {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='200' height='154' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M46.154 0H200l-46.154 153.846H0z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-parallelogram-2 {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='200' height='154' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M153.846 0H0l46.154 153.846H200z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-parallelogram-3 {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='154' height='201' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M.077 47.077v153.846l153.846-46.154V.923z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-parallelogram-4 {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='154' height='201' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M153.923 47.077v153.846L.077 154.77V.923z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-pentagon {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='192' height='181' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 0 95.106 69.098-36.327 111.804H37.22L.894 69.098z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-square {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 0h200v200H0z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-star {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 137.263-58.779 42.024 22.163-68.389L.894 68.481l72.476-.243L96 0l22.63 68.238 72.476.243-58.49 42.417 22.163 68.389z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-star-2 {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 153.044-58.779 26.243 7.02-63.513L.894 68.481l63.117-13.01L96 0l31.989 55.472 63.117 13.01-43.347 47.292 7.02 63.513z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-triangle {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='174' height='149' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m87 148.476-86.603.185L43.86 74.423 87 0l43.14 74.423 43.463 74.238z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-triangle-2 {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='174' height='150' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m87 .738 86.603-.184-43.463 74.238L87 149.214 43.86 74.792.397.554z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-triangle-3 {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='150' height='174' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m149.369 87.107.185 86.603-74.239-43.463L.893 87.107l74.422-43.14L149.554.505z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
&-triangle-4 {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='150' height='174' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M.631 87.107.446.505l74.239 43.462 74.422 43.14-74.422 43.14L.446 173.71z' fill-rule='evenodd'/%3e%3c/svg%3e");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,133 @@
|
|||
.menu {
|
||||
&.horizontal {
|
||||
> li {
|
||||
&.bordered {
|
||||
> a,
|
||||
> button,
|
||||
> span {
|
||||
@apply border-l-0 border-b-4 border-primary;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&[class*=" px-"]:not(&[class*=" px-0"]) li > *,
|
||||
&[class^="px-"]:not(&[class^="px-0"]) li > *,
|
||||
&[class*=" p-"]:not(&[class*=" p-0"]) li > *,
|
||||
&[class^="p-"]:not(&[class^="p-0"]) li > * {
|
||||
@apply rounded-btn;
|
||||
}
|
||||
:where(li.bordered > *) {
|
||||
@apply border-l-4 border-primary;
|
||||
}
|
||||
:where(li) > :where(*:not(ul)) {
|
||||
@apply gap-3 px-4 py-3 text-current;
|
||||
}
|
||||
|
||||
:where(li:not(.menu-title):not(:empty)) > :where(*:not(ul):focus),
|
||||
:where(li:not(.menu-title):not(:empty)) > :where(*:not(ul):hover) {
|
||||
@apply bg-base-content bg-opacity-10;
|
||||
}
|
||||
:where(li:not(.menu-title):not(:empty)) > :where(:not(ul).active),
|
||||
:where(li:not(.menu-title):not(:empty)) > :where(*:not(ul):active) {
|
||||
@apply bg-primary text-primary-content;
|
||||
}
|
||||
:where(li:empty) {
|
||||
@apply mx-4 my-2 h-px bg-base-content bg-opacity-10;
|
||||
}
|
||||
|
||||
li.disabled {
|
||||
& > * {
|
||||
@apply select-none text-base-content text-opacity-20 hover:bg-transparent;
|
||||
}
|
||||
}
|
||||
li.hover-bordered {
|
||||
a {
|
||||
@apply border-l-4 border-transparent hover:border-primary;
|
||||
}
|
||||
}
|
||||
&.compact {
|
||||
li {
|
||||
> a,
|
||||
> span {
|
||||
@apply py-2 text-sm;
|
||||
}
|
||||
}
|
||||
}
|
||||
.menu-title {
|
||||
@apply text-xs font-bold opacity-40;
|
||||
> * {
|
||||
@apply py-1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.menu :where(li:not(.disabled)) > :where(*:not(ul)) {
|
||||
@apply outline-none transition duration-200 ease-in-out;
|
||||
}
|
||||
|
||||
.menu > :where(li:first-child) {
|
||||
border-top-left-radius: inherit;
|
||||
border-top-right-radius: inherit;
|
||||
border-bottom-right-radius: unset;
|
||||
border-bottom-left-radius: unset;
|
||||
}
|
||||
.menu > :where(li:first-child) > :where(:not(ul)) {
|
||||
border-top-left-radius: inherit;
|
||||
border-top-right-radius: inherit;
|
||||
border-bottom-right-radius: unset;
|
||||
border-bottom-left-radius: unset;
|
||||
}
|
||||
.menu > :where(li:last-child) {
|
||||
border-top-left-radius: unset;
|
||||
border-top-right-radius: unset;
|
||||
border-bottom-right-radius: inherit;
|
||||
border-bottom-left-radius: inherit;
|
||||
}
|
||||
.menu > :where(li:last-child) > :where(:not(ul)) {
|
||||
border-top-left-radius: unset;
|
||||
border-top-right-radius: unset;
|
||||
border-bottom-right-radius: inherit;
|
||||
border-bottom-left-radius: inherit;
|
||||
}
|
||||
|
||||
.menu > :where(li) > :where(ul) {
|
||||
border-top-left-radius: inherit;
|
||||
border-top-right-radius: inherit;
|
||||
border-bottom-right-radius: inherit;
|
||||
border-bottom-left-radius: inherit;
|
||||
}
|
||||
|
||||
.menu > :where(li) > :where(ul) :where(li) {
|
||||
@apply w-full whitespace-nowrap;
|
||||
}
|
||||
.menu > :where(li) > :where(ul) :where(li) :where(ul) {
|
||||
@apply pl-4;
|
||||
}
|
||||
.menu > :where(li) > :where(ul) :where(li) > :where(:not(ul)) {
|
||||
@apply w-full whitespace-nowrap;
|
||||
}
|
||||
|
||||
.menu > :where(li) > :where(ul) > :where(li:first-child) {
|
||||
border-top-left-radius: inherit;
|
||||
border-top-right-radius: inherit;
|
||||
border-bottom-right-radius: unset;
|
||||
border-bottom-left-radius: unset;
|
||||
}
|
||||
.menu > :where(li) > :where(ul) > :where(li:first-child) > :where(:not(ul)) {
|
||||
border-top-left-radius: inherit;
|
||||
border-top-right-radius: inherit;
|
||||
border-bottom-right-radius: unset;
|
||||
border-bottom-left-radius: unset;
|
||||
}
|
||||
.menu > :where(li) > :where(ul) > :where(li:last-child) {
|
||||
border-top-left-radius: unset;
|
||||
border-top-right-radius: unset;
|
||||
border-bottom-right-radius: inherit;
|
||||
border-bottom-left-radius: inherit;
|
||||
}
|
||||
.menu > :where(li) > :where(ul) > :where(li:last-child) > :where(:not(ul)) {
|
||||
border-top-left-radius: unset;
|
||||
border-top-right-radius: unset;
|
||||
border-bottom-right-radius: inherit;
|
||||
border-bottom-left-radius: inherit;
|
||||
}
|
|
@ -0,0 +1,78 @@
|
|||
.mockup {
|
||||
&-code {
|
||||
@apply min-w-[18rem] bg-neutral py-5 text-neutral-content rounded-box;
|
||||
&:before {
|
||||
content: "";
|
||||
@apply mb-4 block h-3 w-3 rounded-full opacity-30;
|
||||
box-shadow: 1.4em 0, 2.8em 0, 4.2em 0;
|
||||
}
|
||||
pre {
|
||||
@apply pr-5;
|
||||
&:before {
|
||||
content: "";
|
||||
margin-right: 2ch;
|
||||
}
|
||||
}
|
||||
pre[data-prefix] {
|
||||
&:before {
|
||||
content: attr(data-prefix);
|
||||
@apply w-8 opacity-50;
|
||||
}
|
||||
}
|
||||
}
|
||||
&-window {
|
||||
@apply pt-5 rounded-box;
|
||||
&:before {
|
||||
content: "";
|
||||
@apply mb-4 block h-3 w-3 rounded-full opacity-30;
|
||||
box-shadow: 1.4em 0, 2.8em 0, 4.2em 0;
|
||||
}
|
||||
}
|
||||
&-phone {
|
||||
display: inline-block;
|
||||
border: 4px solid #444;
|
||||
border-radius: 50px;
|
||||
background-color: #000;
|
||||
padding: 10px;
|
||||
margin: 0 auto;
|
||||
overflow: hidden;
|
||||
.camera {
|
||||
position: relative;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
background: #000;
|
||||
height: 25px;
|
||||
width: 150px;
|
||||
margin: 0 auto;
|
||||
border-bottom-left-radius: 17px;
|
||||
border-bottom-right-radius: 17px;
|
||||
z-index: 11;
|
||||
&:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 35%;
|
||||
left: 50%;
|
||||
width: 50px;
|
||||
height: 4px;
|
||||
border-radius: 5px;
|
||||
background-color: #0c0b0e;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
&:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 20%;
|
||||
left: 70%;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
border-radius: 5px;
|
||||
background-color: #0f0b25;
|
||||
}
|
||||
}
|
||||
.display {
|
||||
overflow: hidden;
|
||||
border-radius: 40px;
|
||||
margin-top: -25px;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
.modal {
|
||||
@apply bg-neutral-focus bg-opacity-40 duration-200 ease-in-out;
|
||||
transition-property: transform, opacity, visibility;
|
||||
overflow-y: hidden;
|
||||
overscroll-behavior: contain;
|
||||
}
|
||||
.modal-box {
|
||||
@apply transform bg-base-100 p-6 transition duration-200 ease-in-out rounded-t-box;
|
||||
@apply w-11/12 max-w-lg scale-90 rounded-b-box rounded-t-box;
|
||||
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
|
||||
overflow-y: auto;
|
||||
overscroll-behavior: contain;
|
||||
}
|
||||
.modal-open .modal-box,
|
||||
.modal-toggle:checked + .modal .modal-box,
|
||||
.modal:target .modal-box {
|
||||
@apply translate-y-0 scale-100;
|
||||
}
|
||||
.modal-action {
|
||||
@apply mt-6 justify-end space-x-2;
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
.navbar {
|
||||
padding: var(--navbar-padding, 0.5rem);
|
||||
min-height: 4rem;
|
||||
@apply w-full;
|
||||
}
|
|
@ -0,0 +1,92 @@
|
|||
.progress {
|
||||
@apply h-2 rounded-box;
|
||||
&::-moz-progress-bar {
|
||||
@apply bg-neutral;
|
||||
}
|
||||
&-primary::-moz-progress-bar {
|
||||
@apply bg-primary;
|
||||
}
|
||||
&-secondary::-moz-progress-bar {
|
||||
@apply bg-secondary;
|
||||
}
|
||||
&-accent::-moz-progress-bar {
|
||||
@apply bg-accent;
|
||||
}
|
||||
&-info::-moz-progress-bar {
|
||||
@apply bg-info;
|
||||
}
|
||||
&-success::-moz-progress-bar {
|
||||
@apply bg-success;
|
||||
}
|
||||
&-warning::-moz-progress-bar {
|
||||
@apply bg-warning;
|
||||
}
|
||||
&-error::-moz-progress-bar {
|
||||
@apply bg-error;
|
||||
}
|
||||
|
||||
&:indeterminate::after {
|
||||
@apply bg-neutral;
|
||||
}
|
||||
&-primary:indeterminate::after {
|
||||
@apply bg-primary;
|
||||
}
|
||||
&-secondary:indeterminate::after {
|
||||
@apply bg-secondary;
|
||||
}
|
||||
&-accent:indeterminate::after {
|
||||
@apply bg-accent;
|
||||
}
|
||||
&-info:indeterminate::after {
|
||||
@apply bg-info;
|
||||
}
|
||||
&-success:indeterminate::after {
|
||||
@apply bg-success;
|
||||
}
|
||||
&-warning:indeterminate::after {
|
||||
@apply bg-warning;
|
||||
}
|
||||
&-error:indeterminate::after {
|
||||
@apply bg-error;
|
||||
}
|
||||
|
||||
&::-webkit-progress-bar {
|
||||
@apply bg-neutral bg-opacity-20 rounded-box;
|
||||
}
|
||||
&::-webkit-progress-value {
|
||||
@apply bg-neutral-focus rounded-box;
|
||||
}
|
||||
&-primary::-webkit-progress-value {
|
||||
@apply bg-primary;
|
||||
}
|
||||
&-secondary::-webkit-progress-value {
|
||||
@apply bg-secondary;
|
||||
}
|
||||
&-accent::-webkit-progress-value {
|
||||
@apply bg-accent;
|
||||
}
|
||||
&-info::-webkit-progress-value {
|
||||
@apply bg-info;
|
||||
}
|
||||
&-success::-webkit-progress-value {
|
||||
@apply bg-success;
|
||||
}
|
||||
&-warning::-webkit-progress-value {
|
||||
@apply bg-warning;
|
||||
}
|
||||
&-error::-webkit-progress-value {
|
||||
@apply bg-error;
|
||||
}
|
||||
}
|
||||
|
||||
.progress:indeterminate::after {
|
||||
content: "";
|
||||
@apply inset-y-0 -left-[40%] w-1/3 absolute rounded-box;
|
||||
animation: progress-loading 5s infinite ease-in-out;
|
||||
}
|
||||
|
||||
@keyframes progress-loading {
|
||||
50% {
|
||||
left: 107%;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
.radial-progress {
|
||||
--value: 0;
|
||||
--size: 5rem;
|
||||
--thickness: calc(var(--size) / 10);
|
||||
}
|
||||
.radial-progress:after {
|
||||
@apply bg-current;
|
||||
}
|
|
@ -0,0 +1,112 @@
|
|||
.radio {
|
||||
--chkbg: var(--bc);
|
||||
@apply h-6 w-6 cursor-pointer appearance-none rounded-full border border-base-content border-opacity-20;
|
||||
transition: background, box-shadow var(--animation-input, 0.2s) ease-in-out;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--bc));
|
||||
outline-offset: 2px;
|
||||
}
|
||||
&:checked,
|
||||
&[aria-checked=true] {
|
||||
@apply bg-base-content;
|
||||
animation: radiomark var(--animation-input, 0.2s) ease-in-out;
|
||||
box-shadow: 0 0 0 4px hsl(var(--b1)) inset, 0 0 0 4px hsl(var(--b1)) inset;
|
||||
}
|
||||
&-primary {
|
||||
--chkbg: var(--p);
|
||||
@apply border-primary hover:border-primary;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--p));
|
||||
}
|
||||
&:checked,
|
||||
&[aria-checked=true] {
|
||||
@apply border-primary bg-primary text-primary-content;
|
||||
}
|
||||
}
|
||||
&-secondary {
|
||||
--chkbg: var(--s);
|
||||
@apply border-secondary hover:border-secondary;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--s));
|
||||
}
|
||||
&:checked,
|
||||
&[aria-checked=true] {
|
||||
@apply border-secondary bg-secondary text-secondary-content;
|
||||
}
|
||||
}
|
||||
&-accent {
|
||||
--chkbg: var(--a);
|
||||
@apply border-accent hover:border-accent;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--a));
|
||||
}
|
||||
&:checked,
|
||||
&[aria-checked=true] {
|
||||
@apply border-accent bg-accent text-accent-content;
|
||||
}
|
||||
}
|
||||
&-success {
|
||||
--chkbg: var(--su);
|
||||
@apply border-success hover:border-success;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--su));
|
||||
}
|
||||
&:checked,
|
||||
&[aria-checked=true] {
|
||||
@apply border-success bg-success text-success-content;
|
||||
}
|
||||
}
|
||||
&-warning {
|
||||
--chkbg: var(--wa);
|
||||
@apply border-warning hover:border-warning;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--wa));
|
||||
}
|
||||
&:checked,
|
||||
&[aria-checked=true] {
|
||||
@apply border-warning bg-warning text-warning-content;
|
||||
}
|
||||
}
|
||||
&-info {
|
||||
--chkbg: var(--in);
|
||||
@apply border-info hover:border-info;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--in));
|
||||
}
|
||||
&:checked,
|
||||
&[aria-checked=true] {
|
||||
@apply border-info bg-info text-info-content;
|
||||
}
|
||||
}
|
||||
&-error {
|
||||
--chkbg: var(--er);
|
||||
@apply border-error hover:border-error;
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--er));
|
||||
}
|
||||
&:checked,
|
||||
&[aria-checked=true] {
|
||||
@apply border-error bg-error text-error-content;
|
||||
}
|
||||
}
|
||||
&:disabled {
|
||||
@apply cursor-not-allowed opacity-20;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes radiomark {
|
||||
0% {
|
||||
box-shadow: 0 0 0 12px hsl(var(--b1)) inset, 0 0 0 12px hsl(var(--b1)) inset;
|
||||
}
|
||||
50% {
|
||||
box-shadow: 0 0 0 3px hsl(var(--b1)) inset, 0 0 0 3px hsl(var(--b1)) inset;
|
||||
}
|
||||
100% {
|
||||
box-shadow: 0 0 0 4px hsl(var(--b1)) inset, 0 0 0 4px hsl(var(--b1)) inset;
|
||||
}
|
||||
}
|
||||
|
||||
/* backward compatibility */
|
||||
.radio-mark {
|
||||
@apply hidden;
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
.range {
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
--range-shdw: var(--bc);
|
||||
@apply bg-transparent rounded-box overflow-hidden;
|
||||
&:focus-visible::-webkit-slider-thumb {
|
||||
--focus-shadow: 0 0 0 6px hsl(var(--b1)) inset, 0 0 0 2rem hsl(var(--range-shdw)) inset;
|
||||
}
|
||||
&:focus-visible::-moz-range-thumb {
|
||||
--focus-shadow: 0 0 0 6px hsl(var(--b1)) inset, 0 0 0 2rem hsl(var(--range-shdw)) inset;
|
||||
}
|
||||
&::-webkit-slider-runnable-track {
|
||||
@apply h-2 w-full rounded-box;
|
||||
background-color: hsla(var(--bc) / 0.1);
|
||||
}
|
||||
&::-moz-range-track {
|
||||
@apply h-2 w-full rounded-box;
|
||||
background-color: hsla(var(--bc) / 0.1);
|
||||
}
|
||||
&::-webkit-slider-thumb {
|
||||
background-color: hsl(var(--b1));
|
||||
@apply relative h-6 w-6 border-none rounded-box;
|
||||
appearance: none;
|
||||
-webkit-appearance: none;
|
||||
top: 50%;
|
||||
color: hsl(var(--range-shdw));
|
||||
transform: translateY(-50%);
|
||||
--filler-size: 100rem;
|
||||
--filler-offset: 0.6rem;
|
||||
box-shadow: 0 0 0 3px hsl(var(--range-shdw)) inset, var(--focus-shadow, 0 0), calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size);
|
||||
}
|
||||
&::-moz-range-thumb {
|
||||
background-color: hsl(var(--b1));
|
||||
@apply relative h-6 w-6 border-none rounded-box;
|
||||
top: 50%;
|
||||
color: hsl(var(--range-shdw));
|
||||
--filler-size: 100rem;
|
||||
--filler-offset: 0.5rem;
|
||||
box-shadow: 0 0 0 3px hsl(var(--range-shdw)) inset, var(--focus-shadow, 0 0), calc(var(--filler-size) * -1 - var(--filler-offset)) 0 0 var(--filler-size);
|
||||
}
|
||||
&-primary {
|
||||
--range-shdw: var(--p);
|
||||
}
|
||||
&-secondary {
|
||||
--range-shdw: var(--s);
|
||||
}
|
||||
&-accent {
|
||||
--range-shdw: var(--a);
|
||||
}
|
||||
&-success {
|
||||
--range-shdw: var(--su);
|
||||
}
|
||||
&-warning {
|
||||
--range-shdw: var(--wa);
|
||||
}
|
||||
&-info {
|
||||
--range-shdw: var(--in);
|
||||
}
|
||||
&-error {
|
||||
--range-shdw: var(--er);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
.rating {
|
||||
& input {
|
||||
@apply appearance-none;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
:where(input) {
|
||||
animation: rating-pop var(--animation-input, 0.25s) ease-out;
|
||||
@apply h-6 w-6 bg-base-content bg-opacity-100;
|
||||
}
|
||||
& .rating-hidden {
|
||||
@apply w-2 bg-transparent;
|
||||
}
|
||||
input:checked ~ input,
|
||||
input[aria-checked=true] ~ input {
|
||||
@apply bg-opacity-20;
|
||||
}
|
||||
input:focus-visible {
|
||||
@apply transition-transform duration-300 ease-in-out;
|
||||
transform: translateY(-0.125em);
|
||||
}
|
||||
|
||||
& input:active:focus {
|
||||
animation: none;
|
||||
}
|
||||
|
||||
& input:active:focus {
|
||||
transform: translateY(-0.125em);
|
||||
}
|
||||
}
|
||||
.rating-half {
|
||||
:where(input:not(.rating-hidden)) {
|
||||
@apply w-3;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes rating-pop {
|
||||
0% {
|
||||
transform: translateY(-0.125em);
|
||||
}
|
||||
40% {
|
||||
transform: translateY(-0.125em);
|
||||
}
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
.select {
|
||||
@apply border border-base-content border-opacity-0 bg-base-100 pr-10 font-semibold rounded-btn;
|
||||
&-bordered {
|
||||
@apply border-opacity-20;
|
||||
}
|
||||
background-image: linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%);
|
||||
background-position: calc(100% - 20px) calc(1px + 50%), calc(100% - 16px) calc(1px + 50%);
|
||||
background-size: 4px 4px, 4px 4px;
|
||||
background-repeat: no-repeat;
|
||||
&:focus {
|
||||
outline: 2px solid hsla(var(--bc) / 0.2);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
&-ghost {
|
||||
@apply bg-opacity-5;
|
||||
&:focus {
|
||||
@apply bg-opacity-100 text-base-content;
|
||||
}
|
||||
}
|
||||
&-primary {
|
||||
@apply border-primary;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--p));
|
||||
}
|
||||
}
|
||||
&-secondary {
|
||||
@apply border-secondary;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--s));
|
||||
}
|
||||
}
|
||||
&-accent {
|
||||
@apply border-accent;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--a));
|
||||
}
|
||||
}
|
||||
&-info {
|
||||
@apply border-info;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--in));
|
||||
}
|
||||
}
|
||||
&-success {
|
||||
@apply border-success;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--su));
|
||||
}
|
||||
}
|
||||
&-warning {
|
||||
@apply border-warning;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--wa));
|
||||
}
|
||||
}
|
||||
&-error {
|
||||
@apply border-error;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--er));
|
||||
}
|
||||
}
|
||||
&-disabled,
|
||||
&[disabled] {
|
||||
@apply cursor-not-allowed border-base-200 bg-base-200 text-opacity-20 placeholder-base-content placeholder-opacity-20;
|
||||
}
|
||||
&-multiple,
|
||||
&[multiple],
|
||||
&[size]&:not([size="1"]) {
|
||||
@apply bg-none pr-4;
|
||||
}
|
||||
}
|
||||
|
||||
[dir="rtl"] .select {
|
||||
background-position: calc(0% + 12px) calc(1px + 50%), calc(0% + 16px) calc(1px + 50%);
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
.stack {
|
||||
@apply place-items-center items-end;
|
||||
& > * {
|
||||
@apply w-full;
|
||||
}
|
||||
& > * {
|
||||
@apply opacity-60;
|
||||
}
|
||||
& > *:nth-child(2) {
|
||||
@apply opacity-80;
|
||||
}
|
||||
& > *:nth-child(1) {
|
||||
@apply opacity-100;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
.stats {
|
||||
@apply bg-base-100 text-base-content rounded-box;
|
||||
}
|
||||
:where(.stats) {
|
||||
@apply divide-x divide-y-0 overflow-x-auto;
|
||||
}
|
||||
.stat {
|
||||
@apply gap-x-4 border-base-content border-opacity-10 px-6 py-4;
|
||||
&-title {
|
||||
@apply text-base-content/60;
|
||||
}
|
||||
&-value {
|
||||
@apply text-4xl font-extrabold;
|
||||
}
|
||||
&-desc {
|
||||
@apply text-xs text-base-content/60;
|
||||
}
|
||||
&-actions {
|
||||
@apply mt-4;
|
||||
}
|
||||
}
|
||||
/* .stat + .stat {
|
||||
@apply border-l border-base-content border-opacity-10;
|
||||
}
|
||||
.stats.grid-flow-row {
|
||||
.stat + .stat {
|
||||
@apply border-l-0 border-t;
|
||||
}
|
||||
} */
|
|
@ -0,0 +1,82 @@
|
|||
.steps {
|
||||
/* &,
|
||||
&-horizontal{ */
|
||||
.step {
|
||||
grid-template-rows: 40px 1fr;
|
||||
grid-template-columns: auto;
|
||||
min-width: 4rem;
|
||||
&:before {
|
||||
@apply top-0 col-start-1 row-start-1 h-2 w-full transform bg-base-300 text-base-content;
|
||||
content: "";
|
||||
margin-left: -100%;
|
||||
}
|
||||
}
|
||||
/* } */
|
||||
.step {
|
||||
&:after {
|
||||
content: counter(step);
|
||||
counter-increment: step;
|
||||
z-index: 1;
|
||||
@apply relative col-start-1 row-start-1 grid h-8 w-8 place-items-center place-self-center rounded-full bg-base-300 text-base-content;
|
||||
}
|
||||
&:first-child:before {
|
||||
content: none;
|
||||
}
|
||||
&[data-content]:after {
|
||||
content: attr(data-content);
|
||||
}
|
||||
}
|
||||
.step-neutral + .step-neutral:before,
|
||||
.step-neutral:after {
|
||||
@apply bg-neutral text-neutral-content;
|
||||
}
|
||||
.step-primary + .step-primary:before,
|
||||
.step-primary:after {
|
||||
@apply bg-primary text-primary-content;
|
||||
}
|
||||
.step-secondary + .step-secondary:before,
|
||||
.step-secondary:after {
|
||||
@apply bg-secondary text-secondary-content;
|
||||
}
|
||||
.step-accent + .step-accent:before,
|
||||
.step-accent:after {
|
||||
@apply bg-accent text-accent-content;
|
||||
}
|
||||
.step-info + .step-info:before {
|
||||
@apply bg-info;
|
||||
}
|
||||
.step-info:after {
|
||||
@apply bg-info text-info-content;
|
||||
}
|
||||
.step-success + .step-success:before {
|
||||
@apply bg-success;
|
||||
}
|
||||
.step-success:after {
|
||||
@apply bg-success text-success-content;
|
||||
}
|
||||
.step-warning + .step-warning:before {
|
||||
@apply bg-warning;
|
||||
}
|
||||
.step-warning:after {
|
||||
@apply bg-warning text-warning-content;
|
||||
}
|
||||
.step-error + .step-error:before {
|
||||
@apply bg-error;
|
||||
}
|
||||
.step-error:after {
|
||||
@apply bg-error text-error-content;
|
||||
}
|
||||
/* &-vertical{
|
||||
.step {
|
||||
gap: .5rem;
|
||||
grid-template-columns: 40px 1fr;
|
||||
grid-template-rows: auto;
|
||||
min-height: 4rem;
|
||||
justify-items: start;
|
||||
&:before {
|
||||
@apply w-2 h-full top-0 transform -translate-y-1/2 -translate-x-1/2;
|
||||
margin-left: 50%;
|
||||
}
|
||||
}
|
||||
} */
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
.swap {
|
||||
@apply cursor-pointer;
|
||||
}
|
||||
|
||||
.swap > * {
|
||||
@apply duration-300 ease-in-out;
|
||||
transition-property: transform, opacity;
|
||||
}
|
||||
|
||||
.swap-rotate .swap-on,
|
||||
.swap-rotate .swap-indeterminate,
|
||||
.swap-rotate input:indeterminate ~ .swap-on {
|
||||
@apply rotate-45;
|
||||
}
|
||||
|
||||
.swap-rotate input:checked ~ .swap-off,
|
||||
.swap-rotate.swap-active .swap-off,
|
||||
.swap-rotate input:indeterminate ~ .swap-off {
|
||||
@apply -rotate-45;
|
||||
}
|
||||
|
||||
.swap-rotate input:checked ~ .swap-on,
|
||||
.swap-rotate.swap-active .swap-on,
|
||||
.swap-rotate input:indeterminate ~ .swap-indeterminate {
|
||||
@apply rotate-0;
|
||||
}
|
||||
|
||||
.swap-flip {
|
||||
transform-style: preserve-3d;
|
||||
perspective: 16em;
|
||||
}
|
||||
.swap-flip .swap-on,
|
||||
.swap-flip .swap-indeterminate,
|
||||
.swap-flip input:indeterminate ~ .swap-on {
|
||||
transform: rotateY(180deg);
|
||||
backface-visibility: hidden;
|
||||
@apply opacity-100;
|
||||
}
|
||||
|
||||
.swap-flip input:checked ~ .swap-off,
|
||||
.swap-flip.swap-active .swap-off,
|
||||
.swap-flip input:indeterminate ~ .swap-off {
|
||||
transform: rotateY(-180deg);
|
||||
backface-visibility: hidden;
|
||||
@apply opacity-100;
|
||||
}
|
||||
|
||||
.swap-flip input:checked ~ .swap-on,
|
||||
.swap-flip.swap-active .swap-on,
|
||||
.swap-flip input:indeterminate ~ .swap-indeterminate {
|
||||
transform: rotateY(0deg);
|
||||
}
|
|
@ -0,0 +1,108 @@
|
|||
.tab {
|
||||
@apply text-opacity-50 hover:text-opacity-100;
|
||||
--tab-color: hsla(var(--bc) / var(--tw-text-opacity, 1));
|
||||
--tab-bg: hsla(var(--b1) / var(--tw-bg-opacity, 1));
|
||||
--tab-border-color: hsla(var(--b3) / var(--tw-bg-opacity, 1));
|
||||
color: var(--tab-color);
|
||||
padding-left: var(--tab-padding, 1rem);
|
||||
padding-right: var(--tab-padding, 1rem);
|
||||
&.tab-active:not(.tab-disabled):not([disabled]) {
|
||||
@apply border-base-content border-opacity-100 text-opacity-100;
|
||||
}
|
||||
&:focus {
|
||||
@apply outline-none;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid currentColor;
|
||||
outline-offset: -3px;
|
||||
&.tab-lifted {
|
||||
border-bottom-right-radius: var(--tab-radius, 0.5rem);
|
||||
border-bottom-left-radius: var(--tab-radius, 0.5rem);
|
||||
}
|
||||
}
|
||||
/* disabled */
|
||||
&-disabled,
|
||||
&-disabled:hover,
|
||||
&[disabled],
|
||||
&[disabled]:hover {
|
||||
@apply text-base-content text-opacity-20 cursor-not-allowed;
|
||||
}
|
||||
}
|
||||
.tab-bordered {
|
||||
@apply border-base-content border-opacity-20;
|
||||
border-style: solid;
|
||||
border-bottom-width: calc(var(--tab-border, 1px) + 1px);
|
||||
}
|
||||
.tab-lifted {
|
||||
border: var(--tab-border, 1px) solid transparent;
|
||||
border-width: 0 0 var(--tab-border, 1px) 0;
|
||||
border-top-left-radius: var(--tab-radius, 0.5rem);
|
||||
border-top-right-radius: var(--tab-radius, 0.5rem);
|
||||
border-bottom-color: var(--tab-border-color);
|
||||
padding-left: var(--tab-padding, 1rem);
|
||||
padding-right: var(--tab-padding, 1rem);
|
||||
padding-top: var(--tab-border, 1px);
|
||||
&.tab-active:not(.tab-disabled):not([disabled]) {
|
||||
background-color: var(--tab-bg);
|
||||
border-width: var(--tab-border, 1px) var(--tab-border, 1px) 0 var(--tab-border, 1px);
|
||||
border-left-color: var(--tab-border-color);
|
||||
border-right-color: var(--tab-border-color);
|
||||
border-top-color: var(--tab-border-color);
|
||||
padding-left: calc(var(--tab-padding, 1rem) - var(--tab-border, 1px));
|
||||
padding-right: calc(var(--tab-padding, 1rem) - var(--tab-border, 1px));
|
||||
padding-bottom: var(--tab-border, 1px);
|
||||
padding-top: 0;
|
||||
&:before,
|
||||
&:after {
|
||||
z-index: 1;
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
width: var(--tab-radius, 0.5rem);
|
||||
height: var(--tab-radius, 0.5rem);
|
||||
bottom: 0;
|
||||
--tab-grad: calc(68% - var(--tab-border, 1px));
|
||||
--tab-corner-bg: radial-gradient(circle at var(--circle-pos), transparent var(--tab-grad), var(--tab-border-color) calc(var(--tab-grad) + 0.3px), var(--tab-border-color) calc(var(--tab-grad) + var(--tab-border, 1px)), var(--tab-bg) calc(var(--tab-grad) + var(--tab-border, 1px) + 0.3px));
|
||||
}
|
||||
&:before {
|
||||
left: calc(var(--tab-radius, 0.5rem) * -1);
|
||||
--circle-pos: top left;
|
||||
background-image: var(--tab-corner-bg);
|
||||
|
||||
/* RTL quick fix */
|
||||
[dir="rtl"] & {
|
||||
--circle-pos: top right;
|
||||
}
|
||||
}
|
||||
&:after {
|
||||
right: calc(var(--tab-radius, 0.5rem) * -1);
|
||||
--circle-pos: top right;
|
||||
background-image: var(--tab-corner-bg);
|
||||
|
||||
/* RTL quick fix */
|
||||
[dir="rtl"] & {
|
||||
--circle-pos: top left;
|
||||
}
|
||||
}
|
||||
&:first-child:before {
|
||||
background: none;
|
||||
}
|
||||
&:last-child:after {
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.tab-lifted.tab-active:not(.tab-disabled):not([disabled]) + .tab-lifted.tab-active:not(.tab-disabled):not([disabled]) {
|
||||
&:before {
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
.tabs-boxed {
|
||||
@apply bg-base-200 p-1 rounded-btn;
|
||||
.tab {
|
||||
@apply rounded-btn;
|
||||
}
|
||||
.tab-active:not(.tab-disabled):not([disabled]) {
|
||||
@apply bg-primary text-primary-content hover:text-primary-content;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
.table {
|
||||
@apply text-left;
|
||||
:where(th, td) {
|
||||
@apply whitespace-nowrap p-4 align-middle;
|
||||
}
|
||||
tr.active,
|
||||
tr.active:nth-child(even) {
|
||||
th,
|
||||
td {
|
||||
@apply bg-base-300;
|
||||
}
|
||||
}
|
||||
tr.hover:hover,
|
||||
tr.hover:nth-child(even):hover {
|
||||
th,
|
||||
td {
|
||||
@apply bg-base-300;
|
||||
}
|
||||
}
|
||||
&:where(:not(.table-zebra)) {
|
||||
:where(thead, tbody, tfoot) {
|
||||
:where(tr:not(:last-child) :where(th, td)) {
|
||||
@apply border-b border-base-200;
|
||||
}
|
||||
}
|
||||
}
|
||||
:where(thead, tfoot) {
|
||||
:where(th, td) {
|
||||
@apply bg-base-200 text-xs font-bold uppercase;
|
||||
}
|
||||
}
|
||||
|
||||
:where(tbody th, tbody td) {
|
||||
@apply bg-base-100;
|
||||
}
|
||||
|
||||
&-zebra tbody {
|
||||
tr:nth-child(even) {
|
||||
th,
|
||||
td {
|
||||
@apply bg-base-200;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:where(.table *:first-child) {
|
||||
:where(*:first-child) {
|
||||
:where(th, td) {
|
||||
&:first-child {
|
||||
@apply rounded-tl-lg;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
@apply rounded-tr-lg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:where(.table *:last-child) {
|
||||
:where(*:last-child) {
|
||||
:where(th, td) {
|
||||
&:first-child {
|
||||
@apply rounded-bl-lg;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
@apply rounded-br-lg;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
.textarea {
|
||||
@apply border border-base-content border-opacity-0 bg-base-100 rounded-btn;
|
||||
&-bordered {
|
||||
@apply border-opacity-20;
|
||||
}
|
||||
&:focus {
|
||||
outline: 2px solid hsla(var(--bc) / 0.2);
|
||||
outline-offset: 2px;
|
||||
}
|
||||
&-ghost {
|
||||
@apply bg-opacity-5;
|
||||
&:focus {
|
||||
@apply bg-opacity-100 text-base-content;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
&-primary {
|
||||
@apply border-primary;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--p));
|
||||
}
|
||||
}
|
||||
&-secondary {
|
||||
@apply border-secondary;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--s));
|
||||
}
|
||||
}
|
||||
&-accent {
|
||||
@apply border-accent;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--a));
|
||||
}
|
||||
}
|
||||
&-info {
|
||||
@apply border-info;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--in));
|
||||
}
|
||||
}
|
||||
&-success {
|
||||
@apply border-success;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--su));
|
||||
}
|
||||
}
|
||||
&-warning {
|
||||
@apply border-warning;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--wa));
|
||||
}
|
||||
}
|
||||
&-error {
|
||||
@apply border-error;
|
||||
&:focus {
|
||||
outline: 2px solid hsl(var(--er));
|
||||
}
|
||||
}
|
||||
&-disabled,
|
||||
&[disabled] {
|
||||
@apply cursor-not-allowed border-base-200 bg-base-200 text-opacity-20 placeholder-base-content placeholder-opacity-20;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
.toast {
|
||||
@apply gap-2 p-4;
|
||||
&>*{
|
||||
animation: toast-pop 0.25s ease-out;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes toast-pop {
|
||||
0% {
|
||||
transform: scale(0.9);
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,118 @@
|
|||
.toggle {
|
||||
--tglbg: hsl(var(--b1));
|
||||
--handleoffset: 1.5rem;
|
||||
--handleoffsetcalculator: calc(var(--handleoffset) * -1);
|
||||
--togglehandleborder: 0 0;
|
||||
@apply h-6 w-12 cursor-pointer appearance-none border border-base-content border-opacity-20 bg-base-content bg-opacity-50 duration-300 ease-in-out rounded-badge;
|
||||
transition: background, box-shadow var(--animation-input, 0.2s) ease-in-out;
|
||||
box-shadow: var(--handleoffsetcalculator) 0 0 2px var(--tglbg) inset, 0 0 0 2px var(--tglbg) inset, var(--togglehandleborder);
|
||||
[dir="rtl"] & {
|
||||
--handleoffsetcalculator: calc(var(--handleoffset) * 1);
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--bc));
|
||||
outline-offset: 2px;
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
--handleoffsetcalculator: var(--handleoffset);
|
||||
@apply border-opacity-100 bg-opacity-100;
|
||||
[dir="rtl"] & {
|
||||
--handleoffsetcalculator: calc(var(--handleoffset) * -1);
|
||||
}
|
||||
}
|
||||
&:indeterminate {
|
||||
@apply border-opacity-100 bg-opacity-100;
|
||||
box-shadow: calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset, calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset, 0 0 0 2px var(--tglbg) inset;
|
||||
[dir="rtl"] & {
|
||||
box-shadow: calc(var(--handleoffset) / 2) 0 0 2px var(--tglbg) inset, calc(var(--handleoffset) / -2) 0 0 2px var(--tglbg) inset, 0 0 0 2px var(--tglbg) inset;
|
||||
}
|
||||
}
|
||||
&-primary {
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--p));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
@apply border-primary;
|
||||
@apply border-primary border-opacity-10 bg-primary text-primary-content;
|
||||
}
|
||||
}
|
||||
&-secondary {
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--s));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
@apply border-secondary;
|
||||
@apply border-secondary border-opacity-10 bg-secondary text-secondary-content;
|
||||
}
|
||||
}
|
||||
&-accent {
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--a));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
@apply border-accent;
|
||||
@apply border-accent border-opacity-10 bg-accent text-accent-content;
|
||||
}
|
||||
}
|
||||
&-success {
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--su));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
@apply border-success;
|
||||
@apply border-success border-opacity-10 bg-success text-success-content;
|
||||
}
|
||||
}
|
||||
&-warning {
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--wa));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
@apply border-warning;
|
||||
@apply border-warning border-opacity-10 bg-warning text-warning-content;
|
||||
}
|
||||
}
|
||||
&-info {
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--in));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
@apply border-info;
|
||||
@apply border-info border-opacity-10 bg-info text-info-content;
|
||||
}
|
||||
}
|
||||
&-error {
|
||||
&:focus-visible {
|
||||
outline: 2px solid hsl(var(--er));
|
||||
}
|
||||
&:checked,
|
||||
&[checked="true"],
|
||||
&[aria-checked=true] {
|
||||
@apply border-error;
|
||||
@apply border-error border-opacity-10 bg-error text-error-content;
|
||||
}
|
||||
}
|
||||
&:disabled {
|
||||
@apply cursor-not-allowed bg-transparent border-base-content opacity-30;
|
||||
--togglehandleborder: 0 0 0 3px hsl(var(--bc)) inset, var(--handleoffsetcalculator) 0 0 3px hsl(var(--bc)) inset;
|
||||
}
|
||||
}
|
||||
|
||||
/* backward compatibility */
|
||||
.toggle-mark {
|
||||
@apply hidden;
|
||||
}
|
|
@ -0,0 +1,110 @@
|
|||
.tooltip {
|
||||
@apply relative inline-block text-center;
|
||||
--tooltip-tail: 3px;
|
||||
--tooltip-color: hsl(var(--n));
|
||||
--tooltip-text-color: hsl(var(--nc));
|
||||
--tooltip-tail-offset: calc(100% + 1px - var(--tooltip-tail));
|
||||
}
|
||||
.tooltip:before,
|
||||
.tooltip:after {
|
||||
@apply opacity-0 transition delay-100 duration-200 ease-in-out;
|
||||
}
|
||||
.tooltip:after {
|
||||
@apply absolute;
|
||||
}
|
||||
.tooltip:before {
|
||||
@apply max-w-xs rounded px-2 py-1 text-sm;
|
||||
background-color: var(--tooltip-color);
|
||||
color: var(--tooltip-text-color);
|
||||
width: max-content;
|
||||
}
|
||||
.tooltip.tooltip-open:before,
|
||||
.tooltip.tooltip-open:after,
|
||||
.tooltip:hover:before,
|
||||
.tooltip:hover:after {
|
||||
@apply opacity-100 delay-75;
|
||||
}
|
||||
.tooltip:not([data-tip]):hover:before,
|
||||
.tooltip:not([data-tip]):hover:after {
|
||||
visibility: hidden;
|
||||
opacity: 0;
|
||||
}
|
||||
.tooltip:after {
|
||||
content: "";
|
||||
border-style: solid;
|
||||
border-width: var(--tooltip-tail, 0);
|
||||
width: 0;
|
||||
height: 0;
|
||||
display: block;
|
||||
position: absolute;
|
||||
}
|
||||
.tooltip, .tooltip-top {
|
||||
&:after {
|
||||
transform: translateX(-50%);
|
||||
border-color: var(--tooltip-color) transparent transparent transparent;
|
||||
top: auto;
|
||||
left: 50%;
|
||||
right: auto;
|
||||
bottom: var(--tooltip-tail-offset);
|
||||
}
|
||||
}
|
||||
.tooltip-bottom {
|
||||
&:after {
|
||||
transform: translateX(-50%);
|
||||
border-color: transparent transparent var(--tooltip-color) transparent;
|
||||
top: var(--tooltip-tail-offset);
|
||||
left: 50%;
|
||||
right: auto;
|
||||
bottom: auto;
|
||||
}
|
||||
}
|
||||
.tooltip-left {
|
||||
&:after {
|
||||
transform: translateY(-50%);
|
||||
border-color: transparent transparent transparent var(--tooltip-color);
|
||||
top: 50%;
|
||||
left: auto;
|
||||
right: calc(var(--tooltip-tail-offset) + 1px);
|
||||
bottom: auto;
|
||||
}
|
||||
}
|
||||
.tooltip-right {
|
||||
&:after {
|
||||
transform: translateY(-50%);
|
||||
border-color: transparent var(--tooltip-color) transparent transparent;
|
||||
top: 50%;
|
||||
left: calc(var(--tooltip-tail-offset) + 1px);
|
||||
right: auto;
|
||||
bottom: auto;
|
||||
}
|
||||
}
|
||||
.tooltip {
|
||||
&-primary {
|
||||
--tooltip-color: hsl(var(--p));
|
||||
--tooltip-text-color: hsl(var(--pc));
|
||||
}
|
||||
&-secondary {
|
||||
--tooltip-color: hsl(var(--s));
|
||||
--tooltip-text-color: hsl(var(--sc));
|
||||
}
|
||||
&-accent {
|
||||
--tooltip-color: hsl(var(--a));
|
||||
--tooltip-text-color: hsl(var(--ac));
|
||||
}
|
||||
&-info {
|
||||
--tooltip-color: hsla(var(--in));
|
||||
--tooltip-text-color: hsl(var(--inc));
|
||||
}
|
||||
&-success {
|
||||
--tooltip-color: hsla(var(--su));
|
||||
--tooltip-text-color: hsl(var(--suc));
|
||||
}
|
||||
&-warning {
|
||||
--tooltip-color: hsla(var(--wa));
|
||||
--tooltip-text-color: hsl(var(--wac));
|
||||
}
|
||||
&-error {
|
||||
--tooltip-color: hsla(var(--er));
|
||||
--tooltip-text-color: hsl(var(--erc));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
:root .prose{
|
||||
--tw-prose-body: hsla(var(--bc)/.8);
|
||||
--tw-prose-headings: hsl(var(--bc));
|
||||
--tw-prose-lead: hsl(var(--bc));
|
||||
--tw-prose-links: hsl(var(--bc));
|
||||
--tw-prose-bold: hsl(var(--bc));
|
||||
--tw-prose-counters: hsl(var(--bc));
|
||||
--tw-prose-bullets: hsla(var(--bc)/.5);
|
||||
--tw-prose-hr: hsla(var(--bc)/.2);
|
||||
--tw-prose-quotes: hsl(var(--bc));
|
||||
--tw-prose-quote-borders: hsla(var(--bc)/.2);
|
||||
--tw-prose-captions: hsla(var(--bc)/.5);
|
||||
--tw-prose-code: hsl(var(--bc));
|
||||
--tw-prose-pre-code: hsl(var(--nc));
|
||||
--tw-prose-pre-bg: hsl(var(--n));
|
||||
--tw-prose-th-borders: hsla(var(--bc)/.5);
|
||||
--tw-prose-td-borders: hsla(var(--bc)/.2);
|
||||
}
|
||||
.prose{
|
||||
& :where(code):not(:where([class~="not-prose"] *)){
|
||||
padding: 2px 8px;
|
||||
border-radius: var(--rounded-badge);
|
||||
}
|
||||
& code:after,
|
||||
& code:before{
|
||||
content: none;
|
||||
}
|
||||
pre{
|
||||
code{
|
||||
border-radius: 0;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
& :where(tbody tr, thead):not(:where([class~="not-prose"] *)){
|
||||
border-bottom-color: hsl(var(--bc) / 20%);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
const plugin = require("tailwindcss/plugin");
|
||||
const responsiveRegex = require("../lib/responsiveRegex");
|
||||
module.exports = {
|
||||
content: [
|
||||
{ raw: '' },
|
||||
],
|
||||
safelist: responsiveRegex,
|
||||
theme: {
|
||||
colors: require("../colors"),
|
||||
},
|
||||
plugins: [
|
||||
plugin(function ({ addBase, addUtilities }) {
|
||||
addBase(require("../../dist/base"));
|
||||
addUtilities(require("../../dist/utilities"), {
|
||||
variants: ["responsive"],
|
||||
});
|
||||
addUtilities(require("../../dist/utilities-unstyled"), {
|
||||
variants: ["responsive"],
|
||||
});
|
||||
addUtilities(require("../../dist/utilities-styled"), {
|
||||
variants: ["responsive"],
|
||||
});
|
||||
}),
|
||||
],
|
||||
};
|
|
@ -0,0 +1,6 @@
|
|||
.alert {
|
||||
@apply flex w-full flex-col items-center justify-between gap-4 space-y-2 md:flex-row md:space-y-0;
|
||||
> :where(*) {
|
||||
@apply flex items-center gap-2;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
.artboard {
|
||||
@apply w-full;
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
.avatar {
|
||||
@apply relative inline-flex;
|
||||
& > div {
|
||||
@apply block aspect-square overflow-hidden;
|
||||
}
|
||||
img {
|
||||
@apply h-full w-full object-cover;
|
||||
}
|
||||
&.placeholder {
|
||||
& > div {
|
||||
@apply flex items-center justify-center;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
.badge {
|
||||
@apply inline-flex items-center justify-center transition duration-200 ease-in-out;
|
||||
@apply h-5 text-sm leading-5;
|
||||
width: fit-content;
|
||||
padding-left: 0.563rem;
|
||||
padding-right: 0.563rem;
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
.btm-nav {
|
||||
@apply flex flex-row items-center justify-around fixed bottom-0 left-0 right-0 w-full;
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
&>* {
|
||||
@apply flex items-center justify-center flex-col basis-full h-full cursor-pointer relative gap-1;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
.breadcrumbs {
|
||||
@apply max-w-full overflow-x-auto;
|
||||
& > ul {
|
||||
@apply flex items-center whitespace-nowrap;
|
||||
min-height: min-content;
|
||||
& > li {
|
||||
@apply flex items-center;
|
||||
& > a {
|
||||
@apply flex cursor-pointer items-center hover:underline;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
.btn {
|
||||
@apply inline-flex flex-shrink-0 cursor-pointer select-none flex-wrap items-center justify-center border-transparent text-center transition duration-200 ease-in-out rounded-btn;
|
||||
@apply h-12 px-4 text-sm min-h-12;
|
||||
line-height: 1em;
|
||||
|
||||
/* disabled */
|
||||
&-disabled,
|
||||
&[disabled] {
|
||||
@apply pointer-events-none;
|
||||
}
|
||||
|
||||
/* shapes */
|
||||
&-square {
|
||||
@apply h-12 w-12 p-0;
|
||||
}
|
||||
&-circle {
|
||||
@apply h-12 w-12 rounded-full p-0;
|
||||
}
|
||||
|
||||
/* loading */
|
||||
&.loading {
|
||||
&,
|
||||
&:hover {
|
||||
@apply pointer-events-none;
|
||||
}
|
||||
&:before {
|
||||
@apply mr-2 h-4 w-4 rounded-full border-2;
|
||||
animation: spin 2s linear infinite;
|
||||
content: "";
|
||||
border-top-color: transparent;
|
||||
border-left-color: transparent;
|
||||
border-bottom-color: currentColor;
|
||||
border-right-color: currentColor;
|
||||
}
|
||||
}
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.btn.loading:before {
|
||||
animation: spin 10s linear infinite;
|
||||
}
|
||||
}
|
||||
@keyframes spin {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
/* group */
|
||||
.btn-group {
|
||||
@apply inline-flex;
|
||||
& > input[type="radio"].btn {
|
||||
@apply appearance-none;
|
||||
}
|
||||
& > input[type="radio"].btn:before {
|
||||
content: attr(data-title);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
.card {
|
||||
@apply relative flex flex-col;
|
||||
&:focus {
|
||||
@apply outline-none;
|
||||
}
|
||||
&-body {
|
||||
@apply flex flex-auto flex-col;
|
||||
:where(p) {
|
||||
@apply flex-grow;
|
||||
}
|
||||
}
|
||||
&-actions {
|
||||
@apply flex flex-wrap items-start gap-2;
|
||||
}
|
||||
& figure {
|
||||
@apply flex items-center justify-center;
|
||||
}
|
||||
&.image-full {
|
||||
@apply grid;
|
||||
&:before {
|
||||
@apply relative;
|
||||
content: "";
|
||||
}
|
||||
&:before,
|
||||
& > * {
|
||||
@apply col-start-1 row-start-1;
|
||||
}
|
||||
& > figure img {
|
||||
@apply h-full object-cover;
|
||||
}
|
||||
}
|
||||
&.image-full > &-body {
|
||||
@apply relative;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
.carousel {
|
||||
@apply flex overflow-x-scroll;
|
||||
scroll-snap-type: x mandatory;
|
||||
scroll-behavior: smooth;
|
||||
&-vertical {
|
||||
@apply flex-col overflow-y-scroll;
|
||||
scroll-snap-type: y mandatory;
|
||||
}
|
||||
&-item {
|
||||
@apply box-content flex flex-none;
|
||||
scroll-snap-align: start;
|
||||
}
|
||||
&-center .carousel-item {
|
||||
scroll-snap-align: center;
|
||||
}
|
||||
&-end .carousel-item {
|
||||
scroll-snap-align: end;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
.chat {
|
||||
@apply grid grid-cols-2 gap-x-3 py-1;
|
||||
&-image {
|
||||
@apply self-end row-span-2;
|
||||
}
|
||||
&-header {
|
||||
@apply text-sm row-start-1;
|
||||
}
|
||||
&-footer {
|
||||
@apply text-sm row-start-3;
|
||||
}
|
||||
&-bubble {
|
||||
@apply block w-fit px-4 py-2 relative;
|
||||
max-width: 90%;
|
||||
&:before {
|
||||
@apply w-3 h-3 absolute bottom-0;
|
||||
background-color: inherit;
|
||||
content: "";
|
||||
mask-size: contain;
|
||||
mask-repeat: no-repeat;
|
||||
mask-position: center;
|
||||
}
|
||||
}
|
||||
&-start {
|
||||
@apply place-items-start;
|
||||
grid-template-columns: auto 1fr;
|
||||
.chat-header {
|
||||
@apply col-start-2;
|
||||
}
|
||||
.chat-footer {
|
||||
@apply col-start-2;
|
||||
}
|
||||
.chat-image {
|
||||
@apply col-start-1;
|
||||
}
|
||||
.chat-bubble {
|
||||
@apply col-start-2;
|
||||
&:before {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e");
|
||||
[dir="rtl"] & {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&-end {
|
||||
@apply place-items-end;
|
||||
grid-template-columns: 1fr auto;
|
||||
.chat-header {
|
||||
@apply col-start-1;
|
||||
}
|
||||
.chat-footer {
|
||||
@apply col-start-1;
|
||||
}
|
||||
.chat-image {
|
||||
@apply col-start-2;
|
||||
}
|
||||
.chat-bubble {
|
||||
@apply col-start-1;
|
||||
&:before {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 1 3 L 3 3 C 2 3 0 1 0 0'/%3e%3c/svg%3e");
|
||||
[dir="rtl"] & {
|
||||
mask-image: url("data:image/svg+xml,%3csvg width='3' height='3' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m 0 3 L 3 3 L 3 0 C 3 1 1 3 0 3'/%3e%3c/svg%3e");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
.checkbox {
|
||||
@apply shrink-0;
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
.collapse.collapse {
|
||||
@apply visible;
|
||||
}
|
||||
.collapse {
|
||||
@apply relative grid overflow-hidden;
|
||||
grid-template-rows: 1fr auto;
|
||||
}
|
||||
.collapse-title,
|
||||
.collapse > input[type="checkbox"],
|
||||
.collapse-content {
|
||||
@apply col-start-1 row-start-1;
|
||||
}
|
||||
.collapse > input[type="checkbox"] {
|
||||
@apply appearance-none opacity-0;
|
||||
}
|
||||
.collapse-content {
|
||||
@apply row-start-2 overflow-hidden;
|
||||
max-height: 0px;
|
||||
}
|
||||
.collapse-open .collapse-content,
|
||||
.collapse:focus:not(.collapse-close) .collapse-content,
|
||||
.collapse:not(.collapse-close)
|
||||
input[type="checkbox"]:checked
|
||||
~ .collapse-content {
|
||||
max-height: none;
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
:root .countdown {
|
||||
line-height: 1em;
|
||||
}
|
||||
.countdown {
|
||||
display: inline-flex;
|
||||
& > * {
|
||||
height: 1em;
|
||||
@apply inline-block overflow-y-hidden;
|
||||
&:before {
|
||||
position: relative;
|
||||
content: "00\A 01\A 02\A 03\A 04\A 05\A 06\A 07\A 08\A 09\A 10\A 11\A 12\A 13\A 14\A 15\A 16\A 17\A 18\A 19\A 20\A 21\A 22\A 23\A 24\A 25\A 26\A 27\A 28\A 29\A 30\A 31\A 32\A 33\A 34\A 35\A 36\A 37\A 38\A 39\A 40\A 41\A 42\A 43\A 44\A 45\A 46\A 47\A 48\A 49\A 50\A 51\A 52\A 53\A 54\A 55\A 56\A 57\A 58\A 59\A 60\A 61\A 62\A 63\A 64\A 65\A 66\A 67\A 68\A 69\A 70\A 71\A 72\A 73\A 74\A 75\A 76\A 77\A 78\A 79\A 80\A 81\A 82\A 83\A 84\A 85\A 86\A 87\A 88\A 89\A 90\A 91\A 92\A 93\A 94\A 95\A 96\A 97\A 98\A 99\A";
|
||||
white-space: pre;
|
||||
top: calc(var(--value) * -1em);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
.divider {
|
||||
@apply flex flex-row items-center self-stretch;
|
||||
&:before,
|
||||
&:after {
|
||||
content: "";
|
||||
@apply flex-grow;
|
||||
@apply h-0.5 w-full;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,104 @@
|
|||
.drawer {
|
||||
@apply grid overflow-hidden w-full;
|
||||
|
||||
height: 100vh;
|
||||
height: 100dvh;
|
||||
|
||||
&.drawer-end {
|
||||
direction: rtl;
|
||||
}
|
||||
&.drawer-end > * {
|
||||
direction: ltr;
|
||||
}
|
||||
&.drawer-end > .drawer-toggle {
|
||||
& ~ .drawer-side > .drawer-overlay + * {
|
||||
@apply translate-x-full justify-self-end;
|
||||
}
|
||||
&:checked ~ .drawer-side > .drawer-overlay + * {
|
||||
@apply translate-x-0;
|
||||
}
|
||||
}
|
||||
}
|
||||
:where(.drawer-toggle ~ .drawer-content) {
|
||||
height: inherit;
|
||||
}
|
||||
.drawer-toggle {
|
||||
@apply absolute h-0 w-0 appearance-none opacity-0;
|
||||
& ~ .drawer-content {
|
||||
@apply z-0 col-start-1 row-start-1 overflow-y-auto;
|
||||
}
|
||||
& ~ .drawer-side {
|
||||
@apply col-start-1 row-start-1 grid max-h-screen overflow-x-hidden;
|
||||
& > .drawer-overlay {
|
||||
@apply invisible col-start-1 row-start-1 opacity-0;
|
||||
}
|
||||
& > .drawer-overlay + * {
|
||||
@apply z-10 col-start-1 row-start-1 -translate-x-full transform;
|
||||
}
|
||||
}
|
||||
&:checked {
|
||||
& ~ .drawer-side {
|
||||
@apply overflow-y-auto overflow-x-hidden isolate;
|
||||
& > .drawer-overlay {
|
||||
@apply visible;
|
||||
}
|
||||
& > .drawer-overlay + * {
|
||||
@apply translate-x-0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[dir="rtl"] .drawer-toggle ~ .drawer-side > .drawer-overlay + * {
|
||||
@apply translate-x-full;
|
||||
}
|
||||
[dir="rtl"] .drawer-toggle:checked ~ .drawer-side > .drawer-overlay + * {
|
||||
@apply translate-x-0;
|
||||
}
|
||||
[dir="rtl"] .drawer.drawer-end > .drawer-toggle ~ .drawer-side > .drawer-overlay + * {
|
||||
--tw-translate-x: -100%;
|
||||
}
|
||||
[dir="rtl"] .drawer.drawer-end > .drawer-toggle:checked ~ .drawer-side > .drawer-overlay + * {
|
||||
--tw-translate-x: 0px;
|
||||
}
|
||||
[dir="rtl"] .drawer.drawer-end > .drawer-toggle:checked ~ .drawer-content {
|
||||
--tw-translate-x: 0.5rem;
|
||||
}
|
||||
|
||||
@media (min-width: 1024px) {
|
||||
.drawer-mobile {
|
||||
grid-auto-columns: max-content auto;
|
||||
& > .drawer-toggle {
|
||||
& ~ .drawer-content {
|
||||
@apply h-auto lg:col-start-2;
|
||||
}
|
||||
& ~ .drawer-side {
|
||||
@apply overflow-y-auto;
|
||||
& > .drawer-overlay {
|
||||
@apply lg:visible;
|
||||
}
|
||||
& > .drawer-overlay + * {
|
||||
@apply lg:translate-x-0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.drawer-mobile.drawer-end {
|
||||
grid-auto-columns: auto max-content;
|
||||
direction: ltr;
|
||||
& > .drawer-toggle {
|
||||
& ~ .drawer-content {
|
||||
@apply h-auto lg:col-start-1;
|
||||
}
|
||||
& ~ .drawer-side {
|
||||
@apply overflow-y-auto lg:col-start-2;
|
||||
& > .drawer-overlay {
|
||||
@apply lg:visible;
|
||||
}
|
||||
& > .drawer-overlay + * {
|
||||
@apply lg:translate-x-0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
.dropdown {
|
||||
@apply relative inline-block;
|
||||
}
|
||||
.dropdown > *:focus {
|
||||
@apply outline-none;
|
||||
}
|
||||
.dropdown .dropdown-content {
|
||||
@apply invisible absolute z-50 opacity-0;
|
||||
}
|
||||
.dropdown-end .dropdown-content {
|
||||
@apply right-0;
|
||||
}
|
||||
.dropdown-left .dropdown-content {
|
||||
@apply top-0 right-full bottom-auto;
|
||||
}
|
||||
.dropdown-right .dropdown-content {
|
||||
@apply left-full top-0 bottom-auto;
|
||||
}
|
||||
.dropdown-bottom .dropdown-content {
|
||||
@apply bottom-auto top-full;
|
||||
}
|
||||
.dropdown-top .dropdown-content {
|
||||
@apply bottom-full top-auto;
|
||||
}
|
||||
.dropdown-end.dropdown-right .dropdown-content {
|
||||
@apply bottom-0 top-auto;
|
||||
}
|
||||
.dropdown-end.dropdown-left .dropdown-content {
|
||||
@apply bottom-0 top-auto;
|
||||
}
|
||||
.dropdown.dropdown-open .dropdown-content,
|
||||
.dropdown.dropdown-hover:hover .dropdown-content,
|
||||
.dropdown:not(.dropdown-hover):focus .dropdown-content,
|
||||
.dropdown:not(.dropdown-hover):focus-within .dropdown-content {
|
||||
@apply visible opacity-100;
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
.file-input {
|
||||
@apply flex-shrink h-12 pr-4 text-sm leading-loose;
|
||||
&::file-selector-button {
|
||||
@apply inline-flex flex-shrink-0 cursor-pointer select-none flex-wrap items-center justify-center border-transparent text-center transition duration-200 ease-in-out h-[2.875rem] px-4 text-sm min-h-[2.875rem] mr-4;
|
||||
line-height: 1em;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
.footer {
|
||||
@apply grid w-full grid-flow-row place-items-start;
|
||||
& > * {
|
||||
@apply grid place-items-start;
|
||||
}
|
||||
&-center {
|
||||
@apply place-items-center text-center;
|
||||
& > * {
|
||||
@apply place-items-center;
|
||||
}
|
||||
}
|
||||
}
|
||||
@media (min-width: 48rem) {
|
||||
.footer {
|
||||
grid-auto-flow: column;
|
||||
}
|
||||
.footer-center {
|
||||
grid-auto-flow: row dense;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
.form-control {
|
||||
@apply flex flex-col;
|
||||
}
|
||||
.label {
|
||||
@apply flex select-none items-center justify-between;
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
.hero {
|
||||
@apply grid w-full place-items-center bg-cover bg-center;
|
||||
& > * {
|
||||
@apply col-start-1 row-start-1;
|
||||
}
|
||||
&-overlay {
|
||||
@apply col-start-1 row-start-1 h-full w-full;
|
||||
}
|
||||
&-content {
|
||||
@apply z-0 flex items-center justify-center;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
.indicator {
|
||||
@apply relative inline-flex;
|
||||
width: max-content;
|
||||
& :where(.indicator-item) {
|
||||
z-index: 1;
|
||||
@apply absolute transform whitespace-nowrap;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,58 @@
|
|||
.input {
|
||||
@apply flex-shrink;
|
||||
@apply h-12 px-4 text-sm leading-loose;
|
||||
}
|
||||
.input-group {
|
||||
@apply flex w-full items-stretch;
|
||||
> .input {
|
||||
@apply isolate;
|
||||
}
|
||||
> *,
|
||||
> .input,
|
||||
> .textarea,
|
||||
> .select {
|
||||
@apply rounded-none;
|
||||
}
|
||||
&-md {
|
||||
@apply text-sm leading-loose;
|
||||
}
|
||||
&-lg {
|
||||
@apply text-lg leading-loose;
|
||||
}
|
||||
&-sm {
|
||||
@apply text-sm leading-8;
|
||||
}
|
||||
&-xs {
|
||||
@apply text-xs leading-relaxed;
|
||||
}
|
||||
:where(span) {
|
||||
@apply flex items-center bg-base-300 px-4;
|
||||
}
|
||||
> :first-child {
|
||||
border-top-left-radius: var(--rounded-btn, 0.5rem);
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-left-radius: var(--rounded-btn, 0.5rem);
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
> :last-child {
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: var(--rounded-btn, 0.5rem);
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: var(--rounded-btn, 0.5rem);
|
||||
}
|
||||
&-vertical {
|
||||
@apply flex-col;
|
||||
:first-child {
|
||||
border-top-left-radius: var(--rounded-btn, 0.5rem);
|
||||
border-top-right-radius: var(--rounded-btn, 0.5rem);
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
:last-child {
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-left-radius: var(--rounded-btn, 0.5rem);
|
||||
border-bottom-right-radius: var(--rounded-btn, 0.5rem);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
.kbd {
|
||||
@apply inline-flex items-center justify-center;
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
.link {
|
||||
@apply cursor-pointer underline;
|
||||
&-hover {
|
||||
@apply no-underline hover:underline;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
.mask {
|
||||
mask-size: contain;
|
||||
mask-repeat: no-repeat;
|
||||
mask-position: center;
|
||||
}
|
||||
.mask-half-1 {
|
||||
mask-size: 200%;
|
||||
mask-position: left;
|
||||
}
|
||||
.mask-half-2 {
|
||||
mask-size: 200%;
|
||||
mask-position: right;
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
.menu {
|
||||
@apply flex flex-col flex-wrap;
|
||||
&.horizontal {
|
||||
@apply inline-flex flex-row;
|
||||
:where(li) {
|
||||
@apply flex-row;
|
||||
}
|
||||
}
|
||||
}
|
||||
:where(.menu li) {
|
||||
@apply relative flex flex-col flex-wrap items-stretch shrink-0;
|
||||
}
|
||||
.menu :where(li:not(.menu-title)) > :where(*:not(ul)) {
|
||||
@apply flex;
|
||||
}
|
||||
.menu :where(li:not(.disabled):not(.menu-title)) > :where(*:not(ul)) {
|
||||
@apply cursor-pointer select-none items-center outline-none;
|
||||
}
|
||||
.menu > :where(li > *:not(ul):focus) {
|
||||
@apply outline-none;
|
||||
}
|
||||
.menu > :where(li.disabled > *:not(ul):focus) {
|
||||
@apply cursor-auto;
|
||||
}
|
||||
|
||||
.menu > :where(li) :where(ul) {
|
||||
@apply flex flex-col items-stretch;
|
||||
}
|
||||
.menu > :where(li) > :where(ul) {
|
||||
@apply absolute hidden;
|
||||
top: initial;
|
||||
left: 100%;
|
||||
}
|
||||
.menu > :where(li:hover) > :where(ul) {
|
||||
@apply flex;
|
||||
}
|
||||
.menu > :where(li:focus) > :where(ul) {
|
||||
@apply flex;
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
.mockup {
|
||||
&-code {
|
||||
@apply relative overflow-hidden overflow-x-auto;
|
||||
pre[data-prefix] {
|
||||
&:before {
|
||||
content: attr(data-prefix);
|
||||
@apply inline-block text-right;
|
||||
}
|
||||
}
|
||||
}
|
||||
&-window {
|
||||
@apply relative overflow-hidden overflow-x-auto;
|
||||
pre[data-prefix] {
|
||||
&:before {
|
||||
content: attr(data-prefix);
|
||||
@apply inline-block text-right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
.modal {
|
||||
@apply pointer-events-none invisible fixed inset-0 flex justify-center opacity-0;
|
||||
z-index: 999;
|
||||
}
|
||||
:where(.modal){
|
||||
@apply items-center;
|
||||
}
|
||||
.modal-box {
|
||||
max-height: calc(100vh - 5em);
|
||||
}
|
||||
.modal-open,
|
||||
.modal:target,
|
||||
.modal-toggle:checked + .modal {
|
||||
@apply pointer-events-auto visible opacity-100;
|
||||
}
|
||||
.modal-action {
|
||||
@apply flex;
|
||||
}
|
||||
.modal-toggle {
|
||||
@apply fixed h-0 w-0 appearance-none opacity-0;
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
.navbar {
|
||||
@apply flex items-center;
|
||||
}
|
||||
:where(.navbar > *) {
|
||||
@apply inline-flex items-center;
|
||||
}
|
||||
.navbar-start {
|
||||
width: 50%;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
.navbar-center {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.navbar-end {
|
||||
width: 50%;
|
||||
justify-content: flex-end;
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
.progress {
|
||||
@apply relative w-full appearance-none overflow-hidden;
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
.radial-progress {
|
||||
@apply w-[var(--size)] h-[var(--size)] bg-transparent rounded-full place-content-center inline-grid relative;
|
||||
vertical-align: middle;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
.radial-progress::-moz-progress-bar {
|
||||
@apply bg-transparent appearance-none;
|
||||
}
|
||||
.radial-progress::-webkit-progress-value {
|
||||
@apply bg-transparent appearance-none;
|
||||
}
|
||||
.radial-progress::-webkit-progress-bar {
|
||||
@apply bg-transparent appearance-none;
|
||||
}
|
||||
.radial-progress:before,
|
||||
.radial-progress:after {
|
||||
@apply absolute rounded-full;
|
||||
content: "";
|
||||
}
|
||||
.radial-progress:before {
|
||||
@apply inset-0;
|
||||
background: radial-gradient(farthest-side, currentColor 98%, #0000) top/var(--thickness) var(--thickness) no-repeat, conic-gradient(currentColor calc(var(--value) * 1%), #0000 0);
|
||||
-webkit-mask: radial-gradient(farthest-side, #0000 calc(99% - var(--thickness)), #000 calc(100% - var(--thickness)));
|
||||
mask: radial-gradient(farthest-side, #0000 calc(99% - var(--thickness)), #000 calc(100% - var(--thickness)));
|
||||
}
|
||||
.radial-progress:after {
|
||||
inset: calc(50% - var(--thickness) / 2);
|
||||
transform: rotate(calc(var(--value) * 3.6deg - 90deg)) translate(calc(var(--size) / 2 - 50%));
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
.radio {
|
||||
@apply shrink-0;
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
.range {
|
||||
@apply h-6 w-full cursor-pointer;
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
.rating {
|
||||
@apply relative inline-flex;
|
||||
:where(input) {
|
||||
@apply cursor-pointer rounded-none;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
.select {
|
||||
@apply inline-flex flex-shrink-0 cursor-pointer select-none appearance-none;
|
||||
@apply h-12 pl-4 pr-10 text-sm leading-loose min-h-12;
|
||||
|
||||
/* disabled */
|
||||
/* &-disabled,
|
||||
&[disabled] {
|
||||
@apply pointer-events-none;
|
||||
} */
|
||||
/* multiple */
|
||||
&[multiple] {
|
||||
@apply h-auto;
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue