├── .github └── FUNDING.yml ├── .browserslistrc ├── .babelrc.json ├── dashboard.png ├── dashboard2.png ├── public ├── fav.ico └── index.html ├── src ├── components │ ├── EmptyLayout.vue │ ├── charts │ │ ├── DonutChart.vue │ │ ├── AreaChart.vue │ │ ├── BarChart.vue │ │ └── LineChart.vue │ ├── AppFooter.vue │ ├── DashboardLayout.vue │ ├── AppSidebar.vue │ └── AppHeader.vue ├── assets │ └── tailwind.css ├── hooks │ ├── useSidebar.ts │ └── useTableData.ts ├── shims-vue.d.ts ├── views │ ├── BlankView.vue │ ├── ChartView.vue │ ├── NotFound.vue │ ├── AppModal.vue │ ├── CardView.vue │ ├── AppLogin.vue │ ├── AppForms.vue │ ├── UIElements.vue │ ├── AppDashboard.vue │ └── AppTables.vue ├── App.vue ├── main.ts ├── partials │ ├── AppBreadcrumb.vue │ └── AppBanner.vue └── router │ └── index.ts ├── postcss.config.js ├── vue.config.js ├── .editorconfig ├── .gitignore ├── README.md ├── .eslintrc.js ├── tsconfig.json ├── package.json └── tailwind.config.js /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | ko_fi: tal7aouy 2 | -------------------------------------------------------------------------------- /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | not ie 11 5 | -------------------------------------------------------------------------------- /.babelrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@vue/cli-plugin-babel/preset"] 3 | } 4 | -------------------------------------------------------------------------------- /dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lhajman/vue-board/HEAD/dashboard.png -------------------------------------------------------------------------------- /dashboard2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lhajman/vue-board/HEAD/dashboard2.png -------------------------------------------------------------------------------- /public/fav.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lhajman/vue-board/HEAD/public/fav.ico -------------------------------------------------------------------------------- /src/components/EmptyLayout.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /src/assets/tailwind.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | 3 | @tailwind components; 4 | 5 | @tailwind utilities; 6 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {} 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | const { defineConfig } = require('@vue/cli-service') 2 | module.exports = defineConfig({ 3 | transpileDependencies: true 4 | }) 5 | -------------------------------------------------------------------------------- /src/hooks/useSidebar.ts: -------------------------------------------------------------------------------- 1 | import { ref } from "vue"; 2 | 3 | const isOpen = ref(false) 4 | 5 | export function useSidebar() { 6 | return { 7 | isOpen 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = false 9 | insert_final_newline = false -------------------------------------------------------------------------------- /src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable */ 2 | declare module '*.vue' { 3 | import type { DefineComponent } from 'vue' 4 | const component: DefineComponent<{}, {}, any> 5 | export default component 6 | } 7 | -------------------------------------------------------------------------------- /src/views/BlankView.vue: -------------------------------------------------------------------------------- 1 | 5 | 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /src/components/charts/DonutChart.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # VueBoard 2 | 3 | Dashboard starter template built Vue 3, Tailwind CSS and TypeScript. 4 | 5 | ![Dashboard](./dashboard.png) 6 | ![Dashboard](./dashboard2.png) 7 | 8 | ## Usage 9 | 10 | ```bash 11 | # Install dependencies 12 | $ npm install 13 | 14 | # Compiles and hot-reloads for development 15 | $ npm run serve 16 | 17 | # Compiles and minifies for production 18 | $ npm run build 19 | ``` 20 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 18 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true, 5 | }, 6 | extends: [ 7 | "plugin:vue/vue3-essential", 8 | "eslint:recommended", 9 | "@vue/typescript/recommended", 10 | ], 11 | parserOptions: { 12 | ecmaVersion: 2020, 13 | }, 14 | rules: { 15 | "no-console": process.env.NODE_ENV === "production" ? "warn" : "off", 16 | "no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", 17 | }, 18 | }; 19 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from "vue"; 2 | import VueApexCharts from "vue3-apexcharts"; 3 | import DashboardLayout from "./components/DashboardLayout.vue"; 4 | import EmptyLayout from "./components/EmptyLayout.vue"; 5 | import "./assets/tailwind.css"; 6 | 7 | import App from "./App.vue"; 8 | import router from "./router"; 9 | const app = createApp(App); 10 | app.component("default-layout", DashboardLayout); 11 | app.component("empty-layout", EmptyLayout); 12 | 13 | app.use(router).use(VueApexCharts).mount("#app"); 14 | -------------------------------------------------------------------------------- /src/components/charts/AreaChart.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /src/components/charts/BarChart.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /src/components/AppFooter.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 18 | -------------------------------------------------------------------------------- /src/components/charts/LineChart.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | -------------------------------------------------------------------------------- /src/components/DashboardLayout.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "esnext", 5 | "strict": true, 6 | "jsx": "preserve", 7 | "moduleResolution": "node", 8 | "experimentalDecorators": true, 9 | "skipLibCheck": true, 10 | "esModuleInterop": true, 11 | "allowSyntheticDefaultImports": true, 12 | "forceConsistentCasingInFileNames": true, 13 | "useDefineForClassFields": true, 14 | "sourceMap": true, 15 | "baseUrl": ".", 16 | "types": [ 17 | "webpack-env" 18 | ], 19 | "paths": { 20 | "@/*": [ 21 | "src/*" 22 | ] 23 | }, 24 | "lib": [ 25 | "esnext", 26 | "dom", 27 | "dom.iterable", 28 | "scripthost" 29 | ] 30 | }, 31 | "include": [ 32 | "src/**/*.ts", 33 | "src/**/*.tsx", 34 | "src/**/*.vue", 35 | "tests/**/*.ts", 36 | "tests/**/*.tsx" 37 | ], 38 | "exclude": [ 39 | "node_modules" 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /src/views/ChartView.vue: -------------------------------------------------------------------------------- 1 | 30 | 31 | 38 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "dashboard-vue", 3 | "version": "1.2.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "autoprefixer": "^10", 12 | "core-js": "^3.8.3", 13 | "postcss": "^8", 14 | "tailwindcss": "^3", 15 | "vue": "^3.2.13", 16 | "vue-class-component": "^8.0.0-0", 17 | "vue-router": "^4.0.3", 18 | "vue3-apexcharts": "^1.4.1" 19 | }, 20 | "devDependencies": { 21 | "@typescript-eslint/eslint-plugin": "^5.4.0", 22 | "@typescript-eslint/parser": "^5.4.0", 23 | "@vue/cli-plugin-babel": "~5.0.0", 24 | "@vue/cli-plugin-eslint": "~5.0.0", 25 | "@vue/cli-plugin-router": "~5.0.0", 26 | "@vue/cli-plugin-typescript": "~5.0.0", 27 | "@vue/cli-service": "~5.0.0", 28 | "@vue/eslint-config-typescript": "^9.1.0", 29 | "eslint": "^7.32.0", 30 | "eslint-plugin-vue": "^8.0.3", 31 | "typescript": "~4.5.5", 32 | "vue-cli-plugin-tailwind": "~3.0.0" 33 | } 34 | } -------------------------------------------------------------------------------- /src/partials/AppBreadcrumb.vue: -------------------------------------------------------------------------------- 1 | 24 | 31 | -------------------------------------------------------------------------------- /src/partials/AppBanner.vue: -------------------------------------------------------------------------------- 1 | 41 | 42 | 46 | -------------------------------------------------------------------------------- /src/router/index.ts: -------------------------------------------------------------------------------- 1 | import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router"; 2 | import Dashboard from "../views/AppDashboard.vue"; 3 | import Forms from "../views/AppForms.vue"; 4 | import Tables from "../views/AppTables.vue"; 5 | import UIElements from "../views/UIElements.vue"; 6 | import Login from "../views/AppLogin.vue"; 7 | import Modal from "../views/AppModal.vue"; 8 | import Chart from "../views/ChartView.vue"; 9 | import Card from "../views/CardView.vue"; 10 | import Blank from "../views/BlankView.vue"; 11 | import NotFound from "../views/NotFound.vue"; 12 | 13 | const routes: Array = [ 14 | { 15 | path: "/", 16 | name: "Login", 17 | component: Login, 18 | meta: { layout: "empty" }, 19 | }, 20 | { 21 | path: "/dashboard", 22 | name: "Dashboard", 23 | component: Dashboard, 24 | }, 25 | { 26 | path: "/forms", 27 | name: "Forms", 28 | component: Forms, 29 | }, 30 | { 31 | path: "/cards", 32 | name: "Cards", 33 | component: Card, 34 | }, 35 | { 36 | path: "/tables", 37 | name: "Tables", 38 | component: Tables, 39 | }, 40 | { 41 | path: "/ui-elements", 42 | name: "UIElements", 43 | component: UIElements, 44 | }, 45 | { 46 | path: "/modal", 47 | name: "Modal", 48 | component: Modal, 49 | }, 50 | { 51 | path: "/charts", 52 | name: "Chart", 53 | component: Chart, 54 | }, 55 | { 56 | path: "/blank", 57 | name: "Blank", 58 | component: Blank, 59 | }, 60 | { path: "/:pathMatch(.*)*", component: NotFound }, 61 | ]; 62 | 63 | const router = createRouter({ 64 | history: createWebHistory(process.env.BASE_URL), 65 | routes, 66 | }); 67 | 68 | export default router; 69 | -------------------------------------------------------------------------------- /src/views/NotFound.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | 31 | 32 | 64 | -------------------------------------------------------------------------------- /src/hooks/useTableData.ts: -------------------------------------------------------------------------------- 1 | import { ref } from 'vue'; 2 | 3 | export interface ISimpleTableData { 4 | city: string; 5 | totalOrders: string; 6 | } 7 | 8 | export interface IPaginatedTableData { 9 | picture: string; 10 | name: string; 11 | role: string; 12 | created: string; 13 | status: string; 14 | statusColor: string; 15 | } 16 | 17 | export interface IWideTableData { 18 | name: string; 19 | email: string; 20 | title: string; 21 | title2: string; 22 | status: string; 23 | role: string; 24 | } 25 | 26 | export function useTableData() { 27 | const simpleTableData = ref([ 28 | { city: 'New York', totalOrders: '200,120' }, 29 | { city: 'Manchester', totalOrders: '632,310' }, 30 | { city: 'London', totalOrders: '451,110' }, 31 | { city: 'Madrid', totalOrders: '132,524' }, 32 | ]); 33 | 34 | const paginatedTableData = ref([ 35 | { 36 | picture: 37 | 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.2&w=160&h=160&q=80', 38 | name: 'Vera Carpenter', 39 | role: 'Admin', 40 | created: 'Jan 21, 2020', 41 | status: 'Active', 42 | statusColor: 'green', 43 | }, 44 | { 45 | picture: 46 | 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.2&w=160&h=160&q=80', 47 | name: 'Blake Bowman', 48 | role: 'Editor', 49 | created: 'Jan 01, 2020', 50 | status: 'Active', 51 | statusColor: 'green', 52 | }, 53 | { 54 | picture: 55 | 'https://images.unsplash.com/photo-1540845511934-7721dd7adec3?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.2&w=160&h=160&q=80', 56 | name: 'Dana Moore', 57 | role: 'Editor', 58 | created: 'Jan 10, 2020', 59 | status: 'Suspended', 60 | statusColor: 'orange', 61 | }, 62 | { 63 | picture: 64 | 'https://images.unsplash.com/photo-1522609925277-66fea332c575?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2.2&h=160&w=160&q=80', 65 | name: 'Alonzo Cox', 66 | role: 'Admin', 67 | created: 'Jan 18, 2020', 68 | status: 'Inactive', 69 | statusColor: 'red', 70 | }, 71 | ]); 72 | 73 | const wideTableData = ref( 74 | [...Array(10).keys()].map(() => ({ 75 | name: 'John Doe', 76 | email: 'john@example.com', 77 | title: 'Software Engineer', 78 | title2: 'Web dev', 79 | status: 'Active', 80 | role: 'Owner', 81 | })) 82 | ); 83 | 84 | return { 85 | simpleTableData, 86 | paginatedTableData, 87 | wideTableData, 88 | }; 89 | } 90 | -------------------------------------------------------------------------------- /src/views/AppModal.vue: -------------------------------------------------------------------------------- 1 | 90 | 91 | 97 | 98 | 103 | -------------------------------------------------------------------------------- /src/views/CardView.vue: -------------------------------------------------------------------------------- 1 | 90 | 93 | -------------------------------------------------------------------------------- /src/views/AppLogin.vue: -------------------------------------------------------------------------------- 1 | 110 | 111 | 123 | -------------------------------------------------------------------------------- /src/views/AppForms.vue: -------------------------------------------------------------------------------- 1 | 146 | 147 | 170 | -------------------------------------------------------------------------------- /src/components/AppSidebar.vue: -------------------------------------------------------------------------------- 1 | 263 | 264 | 276 | -------------------------------------------------------------------------------- /src/views/UIElements.vue: -------------------------------------------------------------------------------- 1 | 282 | 285 | -------------------------------------------------------------------------------- /src/components/AppHeader.vue: -------------------------------------------------------------------------------- 1 | 352 | 353 | 361 | -------------------------------------------------------------------------------- /src/views/AppDashboard.vue: -------------------------------------------------------------------------------- 1 | 333 | 334 | 358 | -------------------------------------------------------------------------------- /src/views/AppTables.vue: -------------------------------------------------------------------------------- 1 | 412 | 413 | 418 | -------------------------------------------------------------------------------- /tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | content: ['./public/**/*.html', './src/**/*.{vue,js,ts,jsx,tsx}'], 3 | presets: [], 4 | darkMode: 'media', // or 'class' 5 | theme: { 6 | screens: { 7 | sm: '640px', 8 | md: '768px', 9 | lg: '1024px', 10 | xl: '1280px', 11 | '2xl': '1536px', 12 | }, 13 | colors: ({ colors }) => ({ 14 | inherit: colors.inherit, 15 | current: colors.current, 16 | transparent: colors.transparent, 17 | black: colors.black, 18 | white: colors.white, 19 | slate: colors.slate, 20 | gray: colors.gray, 21 | zinc: colors.zinc, 22 | neutral: colors.neutral, 23 | stone: colors.stone, 24 | red: colors.red, 25 | orange: colors.orange, 26 | amber: colors.amber, 27 | yellow: colors.yellow, 28 | lime: colors.lime, 29 | green: colors.green, 30 | emerald: colors.emerald, 31 | teal: colors.teal, 32 | cyan: colors.cyan, 33 | sky: colors.sky, 34 | blue: colors.blue, 35 | indigo: colors.indigo, 36 | violet: colors.violet, 37 | purple: colors.purple, 38 | fuchsia: colors.fuchsia, 39 | pink: colors.pink, 40 | rose: colors.rose, 41 | }), 42 | columns: { 43 | auto: 'auto', 44 | 1: '1', 45 | 2: '2', 46 | 3: '3', 47 | 4: '4', 48 | 5: '5', 49 | 6: '6', 50 | 7: '7', 51 | 8: '8', 52 | 9: '9', 53 | 10: '10', 54 | 11: '11', 55 | 12: '12', 56 | '3xs': '16rem', 57 | '2xs': '18rem', 58 | xs: '20rem', 59 | sm: '24rem', 60 | md: '28rem', 61 | lg: '32rem', 62 | xl: '36rem', 63 | '2xl': '42rem', 64 | '3xl': '48rem', 65 | '4xl': '56rem', 66 | '5xl': '64rem', 67 | '6xl': '72rem', 68 | '7xl': '80rem', 69 | }, 70 | spacing: { 71 | px: '1px', 72 | 0: '0px', 73 | 0.5: '0.125rem', 74 | 1: '0.25rem', 75 | 1.5: '0.375rem', 76 | 2: '0.5rem', 77 | 2.5: '0.625rem', 78 | 3: '0.75rem', 79 | 3.5: '0.875rem', 80 | 4: '1rem', 81 | 5: '1.25rem', 82 | 6: '1.5rem', 83 | 7: '1.75rem', 84 | 8: '2rem', 85 | 9: '2.25rem', 86 | 10: '2.5rem', 87 | 11: '2.75rem', 88 | 12: '3rem', 89 | 14: '3.5rem', 90 | 16: '4rem', 91 | 20: '5rem', 92 | 24: '6rem', 93 | 28: '7rem', 94 | 32: '8rem', 95 | 36: '9rem', 96 | 40: '10rem', 97 | 44: '11rem', 98 | 48: '12rem', 99 | 52: '13rem', 100 | 56: '14rem', 101 | 60: '15rem', 102 | 64: '16rem', 103 | 72: '18rem', 104 | 80: '20rem', 105 | 96: '24rem', 106 | }, 107 | animation: { 108 | none: 'none', 109 | spin: 'spin 1s linear infinite', 110 | ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite', 111 | pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite', 112 | bounce: 'bounce 1s infinite', 113 | }, 114 | aspectRatio: { 115 | auto: 'auto', 116 | square: '1 / 1', 117 | video: '16 / 9', 118 | }, 119 | backdropBlur: ({ theme }) => theme('blur'), 120 | backdropBrightness: ({ theme }) => theme('brightness'), 121 | backdropContrast: ({ theme }) => theme('contrast'), 122 | backdropGrayscale: ({ theme }) => theme('grayscale'), 123 | backdropHueRotate: ({ theme }) => theme('hueRotate'), 124 | backdropInvert: ({ theme }) => theme('invert'), 125 | backdropOpacity: ({ theme }) => theme('opacity'), 126 | backdropSaturate: ({ theme }) => theme('saturate'), 127 | backdropSepia: ({ theme }) => theme('sepia'), 128 | backgroundColor: ({ theme }) => theme('colors'), 129 | backgroundImage: { 130 | none: 'none', 131 | 'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))', 132 | 'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))', 133 | 'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))', 134 | 'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))', 135 | 'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))', 136 | 'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))', 137 | 'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))', 138 | 'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))', 139 | }, 140 | backgroundOpacity: ({ theme }) => theme('opacity'), 141 | backgroundPosition: { 142 | bottom: 'bottom', 143 | center: 'center', 144 | left: 'left', 145 | 'left-bottom': 'left bottom', 146 | 'left-top': 'left top', 147 | right: 'right', 148 | 'right-bottom': 'right bottom', 149 | 'right-top': 'right top', 150 | top: 'top', 151 | }, 152 | backgroundSize: { 153 | auto: 'auto', 154 | cover: 'cover', 155 | contain: 'contain', 156 | }, 157 | blur: { 158 | 0: '0', 159 | none: '0', 160 | sm: '4px', 161 | DEFAULT: '8px', 162 | md: '12px', 163 | lg: '16px', 164 | xl: '24px', 165 | '2xl': '40px', 166 | '3xl': '64px', 167 | }, 168 | brightness: { 169 | 0: '0', 170 | 50: '.5', 171 | 75: '.75', 172 | 90: '.9', 173 | 95: '.95', 174 | 100: '1', 175 | 105: '1.05', 176 | 110: '1.1', 177 | 125: '1.25', 178 | 150: '1.5', 179 | 200: '2', 180 | }, 181 | borderColor: ({ theme }) => ({ 182 | ...theme('colors'), 183 | DEFAULT: theme('colors.gray.200', 'currentColor'), 184 | }), 185 | borderOpacity: ({ theme }) => theme('opacity'), 186 | borderRadius: { 187 | none: '0px', 188 | sm: '0.125rem', 189 | DEFAULT: '0.25rem', 190 | md: '0.375rem', 191 | lg: '0.5rem', 192 | xl: '0.75rem', 193 | '2xl': '1rem', 194 | '3xl': '1.5rem', 195 | full: '9999px', 196 | }, 197 | borderWidth: { 198 | DEFAULT: '1px', 199 | 0: '0px', 200 | 2: '2px', 201 | 4: '4px', 202 | 8: '8px', 203 | }, 204 | boxShadow: { 205 | sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)', 206 | DEFAULT: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)', 207 | md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)', 208 | lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)', 209 | xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)', 210 | '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)', 211 | inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)', 212 | none: 'none', 213 | }, 214 | boxShadowColor: ({ theme }) => theme('colors'), 215 | caretColor: ({ theme }) => theme('colors'), 216 | accentColor: ({ theme }) => ({ 217 | ...theme('colors'), 218 | auto: 'auto', 219 | }), 220 | contrast: { 221 | 0: '0', 222 | 50: '.5', 223 | 75: '.75', 224 | 100: '1', 225 | 125: '1.25', 226 | 150: '1.5', 227 | 200: '2', 228 | }, 229 | container: {}, 230 | content: { 231 | none: 'none', 232 | }, 233 | cursor: { 234 | auto: 'auto', 235 | default: 'default', 236 | pointer: 'pointer', 237 | wait: 'wait', 238 | text: 'text', 239 | move: 'move', 240 | help: 'help', 241 | 'not-allowed': 'not-allowed', 242 | none: 'none', 243 | 'context-menu': 'context-menu', 244 | progress: 'progress', 245 | cell: 'cell', 246 | crosshair: 'crosshair', 247 | 'vertical-text': 'vertical-text', 248 | alias: 'alias', 249 | copy: 'copy', 250 | 'no-drop': 'no-drop', 251 | grab: 'grab', 252 | grabbing: 'grabbing', 253 | 'all-scroll': 'all-scroll', 254 | 'col-resize': 'col-resize', 255 | 'row-resize': 'row-resize', 256 | 'n-resize': 'n-resize', 257 | 'e-resize': 'e-resize', 258 | 's-resize': 's-resize', 259 | 'w-resize': 'w-resize', 260 | 'ne-resize': 'ne-resize', 261 | 'nw-resize': 'nw-resize', 262 | 'se-resize': 'se-resize', 263 | 'sw-resize': 'sw-resize', 264 | 'ew-resize': 'ew-resize', 265 | 'ns-resize': 'ns-resize', 266 | 'nesw-resize': 'nesw-resize', 267 | 'nwse-resize': 'nwse-resize', 268 | 'zoom-in': 'zoom-in', 269 | 'zoom-out': 'zoom-out', 270 | }, 271 | divideColor: ({ theme }) => theme('borderColor'), 272 | divideOpacity: ({ theme }) => theme('borderOpacity'), 273 | divideWidth: ({ theme }) => theme('borderWidth'), 274 | dropShadow: { 275 | sm: '0 1px 1px rgb(0 0 0 / 0.05)', 276 | DEFAULT: ['0 1px 2px rgb(0 0 0 / 0.1)', '0 1px 1px rgb(0 0 0 / 0.06)'], 277 | md: ['0 4px 3px rgb(0 0 0 / 0.07)', '0 2px 2px rgb(0 0 0 / 0.06)'], 278 | lg: ['0 10px 8px rgb(0 0 0 / 0.04)', '0 4px 3px rgb(0 0 0 / 0.1)'], 279 | xl: ['0 20px 13px rgb(0 0 0 / 0.03)', '0 8px 5px rgb(0 0 0 / 0.08)'], 280 | '2xl': '0 25px 25px rgb(0 0 0 / 0.15)', 281 | none: '0 0 #0000', 282 | }, 283 | fill: ({ theme }) => theme('colors'), 284 | grayscale: { 285 | 0: '0', 286 | DEFAULT: '100%', 287 | }, 288 | hueRotate: { 289 | 0: '0deg', 290 | 15: '15deg', 291 | 30: '30deg', 292 | 60: '60deg', 293 | 90: '90deg', 294 | 180: '180deg', 295 | }, 296 | invert: { 297 | 0: '0', 298 | DEFAULT: '100%', 299 | }, 300 | flex: { 301 | 1: '1 1 0%', 302 | auto: '1 1 auto', 303 | initial: '0 1 auto', 304 | none: 'none', 305 | }, 306 | flexBasis: ({ theme }) => ({ 307 | auto: 'auto', 308 | ...theme('spacing'), 309 | '1/2': '50%', 310 | '1/3': '33.333333%', 311 | '2/3': '66.666667%', 312 | '1/4': '25%', 313 | '2/4': '50%', 314 | '3/4': '75%', 315 | '1/5': '20%', 316 | '2/5': '40%', 317 | '3/5': '60%', 318 | '4/5': '80%', 319 | '1/6': '16.666667%', 320 | '2/6': '33.333333%', 321 | '3/6': '50%', 322 | '4/6': '66.666667%', 323 | '5/6': '83.333333%', 324 | '1/12': '8.333333%', 325 | '2/12': '16.666667%', 326 | '3/12': '25%', 327 | '4/12': '33.333333%', 328 | '5/12': '41.666667%', 329 | '6/12': '50%', 330 | '7/12': '58.333333%', 331 | '8/12': '66.666667%', 332 | '9/12': '75%', 333 | '10/12': '83.333333%', 334 | '11/12': '91.666667%', 335 | full: '100%', 336 | }), 337 | flexGrow: { 338 | 0: '0', 339 | DEFAULT: '1', 340 | }, 341 | flexShrink: { 342 | 0: '0', 343 | DEFAULT: '1', 344 | }, 345 | fontFamily: { 346 | sans: [ 347 | 'ui-sans-serif', 348 | 'system-ui', 349 | '-apple-system', 350 | 'BlinkMacSystemFont', 351 | '"Segoe UI"', 352 | 'Roboto', 353 | '"Helvetica Neue"', 354 | 'Arial', 355 | '"Noto Sans"', 356 | 'sans-serif', 357 | '"Apple Color Emoji"', 358 | '"Segoe UI Emoji"', 359 | '"Segoe UI Symbol"', 360 | '"Noto Color Emoji"', 361 | ], 362 | serif: ['ui-serif', 'Georgia', 'Cambria', '"Times New Roman"', 'Times', 'serif'], 363 | mono: [ 364 | 'ui-monospace', 365 | 'SFMono-Regular', 366 | 'Menlo', 367 | 'Monaco', 368 | 'Consolas', 369 | '"Liberation Mono"', 370 | '"Courier New"', 371 | 'monospace', 372 | ], 373 | }, 374 | fontSize: { 375 | xs: ['0.75rem', { lineHeight: '1rem' }], 376 | sm: ['0.875rem', { lineHeight: '1.25rem' }], 377 | base: ['1rem', { lineHeight: '1.5rem' }], 378 | lg: ['1.125rem', { lineHeight: '1.75rem' }], 379 | xl: ['1.25rem', { lineHeight: '1.75rem' }], 380 | '2xl': ['1.5rem', { lineHeight: '2rem' }], 381 | '3xl': ['1.875rem', { lineHeight: '2.25rem' }], 382 | '4xl': ['2.25rem', { lineHeight: '2.5rem' }], 383 | '5xl': ['3rem', { lineHeight: '1' }], 384 | '6xl': ['3.75rem', { lineHeight: '1' }], 385 | '7xl': ['4.5rem', { lineHeight: '1' }], 386 | '8xl': ['6rem', { lineHeight: '1' }], 387 | '9xl': ['8rem', { lineHeight: '1' }], 388 | }, 389 | fontWeight: { 390 | thin: '100', 391 | extralight: '200', 392 | light: '300', 393 | normal: '400', 394 | medium: '500', 395 | semibold: '600', 396 | bold: '700', 397 | extrabold: '800', 398 | black: '900', 399 | }, 400 | gap: ({ theme }) => theme('spacing'), 401 | gradientColorStops: ({ theme }) => theme('colors'), 402 | gridAutoColumns: { 403 | auto: 'auto', 404 | min: 'min-content', 405 | max: 'max-content', 406 | fr: 'minmax(0, 1fr)', 407 | }, 408 | gridAutoRows: { 409 | auto: 'auto', 410 | min: 'min-content', 411 | max: 'max-content', 412 | fr: 'minmax(0, 1fr)', 413 | }, 414 | gridColumn: { 415 | auto: 'auto', 416 | 'span-1': 'span 1 / span 1', 417 | 'span-2': 'span 2 / span 2', 418 | 'span-3': 'span 3 / span 3', 419 | 'span-4': 'span 4 / span 4', 420 | 'span-5': 'span 5 / span 5', 421 | 'span-6': 'span 6 / span 6', 422 | 'span-7': 'span 7 / span 7', 423 | 'span-8': 'span 8 / span 8', 424 | 'span-9': 'span 9 / span 9', 425 | 'span-10': 'span 10 / span 10', 426 | 'span-11': 'span 11 / span 11', 427 | 'span-12': 'span 12 / span 12', 428 | 'span-full': '1 / -1', 429 | }, 430 | gridColumnEnd: { 431 | auto: 'auto', 432 | 1: '1', 433 | 2: '2', 434 | 3: '3', 435 | 4: '4', 436 | 5: '5', 437 | 6: '6', 438 | 7: '7', 439 | 8: '8', 440 | 9: '9', 441 | 10: '10', 442 | 11: '11', 443 | 12: '12', 444 | 13: '13', 445 | }, 446 | gridColumnStart: { 447 | auto: 'auto', 448 | 1: '1', 449 | 2: '2', 450 | 3: '3', 451 | 4: '4', 452 | 5: '5', 453 | 6: '6', 454 | 7: '7', 455 | 8: '8', 456 | 9: '9', 457 | 10: '10', 458 | 11: '11', 459 | 12: '12', 460 | 13: '13', 461 | }, 462 | gridRow: { 463 | auto: 'auto', 464 | 'span-1': 'span 1 / span 1', 465 | 'span-2': 'span 2 / span 2', 466 | 'span-3': 'span 3 / span 3', 467 | 'span-4': 'span 4 / span 4', 468 | 'span-5': 'span 5 / span 5', 469 | 'span-6': 'span 6 / span 6', 470 | 'span-full': '1 / -1', 471 | }, 472 | gridRowStart: { 473 | auto: 'auto', 474 | 1: '1', 475 | 2: '2', 476 | 3: '3', 477 | 4: '4', 478 | 5: '5', 479 | 6: '6', 480 | 7: '7', 481 | }, 482 | gridRowEnd: { 483 | auto: 'auto', 484 | 1: '1', 485 | 2: '2', 486 | 3: '3', 487 | 4: '4', 488 | 5: '5', 489 | 6: '6', 490 | 7: '7', 491 | }, 492 | gridTemplateColumns: { 493 | none: 'none', 494 | 1: 'repeat(1, minmax(0, 1fr))', 495 | 2: 'repeat(2, minmax(0, 1fr))', 496 | 3: 'repeat(3, minmax(0, 1fr))', 497 | 4: 'repeat(4, minmax(0, 1fr))', 498 | 5: 'repeat(5, minmax(0, 1fr))', 499 | 6: 'repeat(6, minmax(0, 1fr))', 500 | 7: 'repeat(7, minmax(0, 1fr))', 501 | 8: 'repeat(8, minmax(0, 1fr))', 502 | 9: 'repeat(9, minmax(0, 1fr))', 503 | 10: 'repeat(10, minmax(0, 1fr))', 504 | 11: 'repeat(11, minmax(0, 1fr))', 505 | 12: 'repeat(12, minmax(0, 1fr))', 506 | }, 507 | gridTemplateRows: { 508 | none: 'none', 509 | 1: 'repeat(1, minmax(0, 1fr))', 510 | 2: 'repeat(2, minmax(0, 1fr))', 511 | 3: 'repeat(3, minmax(0, 1fr))', 512 | 4: 'repeat(4, minmax(0, 1fr))', 513 | 5: 'repeat(5, minmax(0, 1fr))', 514 | 6: 'repeat(6, minmax(0, 1fr))', 515 | }, 516 | height: ({ theme }) => ({ 517 | auto: 'auto', 518 | ...theme('spacing'), 519 | '1/2': '50%', 520 | '1/3': '33.333333%', 521 | '2/3': '66.666667%', 522 | '1/4': '25%', 523 | '2/4': '50%', 524 | '3/4': '75%', 525 | '1/5': '20%', 526 | '2/5': '40%', 527 | '3/5': '60%', 528 | '4/5': '80%', 529 | '1/6': '16.666667%', 530 | '2/6': '33.333333%', 531 | '3/6': '50%', 532 | '4/6': '66.666667%', 533 | '5/6': '83.333333%', 534 | full: '100%', 535 | screen: '100vh', 536 | min: 'min-content', 537 | max: 'max-content', 538 | fit: 'fit-content', 539 | }), 540 | inset: ({ theme }) => ({ 541 | auto: 'auto', 542 | ...theme('spacing'), 543 | '1/2': '50%', 544 | '1/3': '33.333333%', 545 | '2/3': '66.666667%', 546 | '1/4': '25%', 547 | '2/4': '50%', 548 | '3/4': '75%', 549 | full: '100%', 550 | }), 551 | keyframes: { 552 | spin: { 553 | to: { 554 | transform: 'rotate(360deg)', 555 | }, 556 | }, 557 | ping: { 558 | '75%, 100%': { 559 | transform: 'scale(2)', 560 | opacity: '0', 561 | }, 562 | }, 563 | pulse: { 564 | '50%': { 565 | opacity: '.5', 566 | }, 567 | }, 568 | bounce: { 569 | '0%, 100%': { 570 | transform: 'translateY(-25%)', 571 | animationTimingFunction: 'cubic-bezier(0.8,0,1,1)', 572 | }, 573 | '50%': { 574 | transform: 'none', 575 | animationTimingFunction: 'cubic-bezier(0,0,0.2,1)', 576 | }, 577 | }, 578 | }, 579 | letterSpacing: { 580 | tighter: '-0.05em', 581 | tight: '-0.025em', 582 | normal: '0em', 583 | wide: '0.025em', 584 | wider: '0.05em', 585 | widest: '0.1em', 586 | }, 587 | lineHeight: { 588 | none: '1', 589 | tight: '1.25', 590 | snug: '1.375', 591 | normal: '1.5', 592 | relaxed: '1.625', 593 | loose: '2', 594 | 3: '.75rem', 595 | 4: '1rem', 596 | 5: '1.25rem', 597 | 6: '1.5rem', 598 | 7: '1.75rem', 599 | 8: '2rem', 600 | 9: '2.25rem', 601 | 10: '2.5rem', 602 | }, 603 | listStyleType: { 604 | none: 'none', 605 | disc: 'disc', 606 | decimal: 'decimal', 607 | }, 608 | margin: ({ theme }) => ({ 609 | auto: 'auto', 610 | ...theme('spacing'), 611 | }), 612 | maxHeight: ({ theme }) => ({ 613 | ...theme('spacing'), 614 | full: '100%', 615 | screen: '100vh', 616 | min: 'min-content', 617 | max: 'max-content', 618 | fit: 'fit-content', 619 | }), 620 | maxWidth: ({ theme, breakpoints }) => ({ 621 | none: 'none', 622 | 0: '0rem', 623 | xs: '20rem', 624 | sm: '24rem', 625 | md: '28rem', 626 | lg: '32rem', 627 | xl: '36rem', 628 | '2xl': '42rem', 629 | '3xl': '48rem', 630 | '4xl': '56rem', 631 | '5xl': '64rem', 632 | '6xl': '72rem', 633 | '7xl': '80rem', 634 | full: '100%', 635 | min: 'min-content', 636 | max: 'max-content', 637 | fit: 'fit-content', 638 | prose: '65ch', 639 | ...breakpoints(theme('screens')), 640 | }), 641 | minHeight: { 642 | 0: '0px', 643 | full: '100%', 644 | screen: '100vh', 645 | min: 'min-content', 646 | max: 'max-content', 647 | fit: 'fit-content', 648 | }, 649 | minWidth: { 650 | 0: '0px', 651 | full: '100%', 652 | min: 'min-content', 653 | max: 'max-content', 654 | fit: 'fit-content', 655 | }, 656 | objectPosition: { 657 | bottom: 'bottom', 658 | center: 'center', 659 | left: 'left', 660 | 'left-bottom': 'left bottom', 661 | 'left-top': 'left top', 662 | right: 'right', 663 | 'right-bottom': 'right bottom', 664 | 'right-top': 'right top', 665 | top: 'top', 666 | }, 667 | opacity: { 668 | 0: '0', 669 | 5: '0.05', 670 | 10: '0.1', 671 | 20: '0.2', 672 | 25: '0.25', 673 | 30: '0.3', 674 | 40: '0.4', 675 | 50: '0.5', 676 | 60: '0.6', 677 | 70: '0.7', 678 | 75: '0.75', 679 | 80: '0.8', 680 | 90: '0.9', 681 | 95: '0.95', 682 | 100: '1', 683 | }, 684 | order: { 685 | first: '-9999', 686 | last: '9999', 687 | none: '0', 688 | 1: '1', 689 | 2: '2', 690 | 3: '3', 691 | 4: '4', 692 | 5: '5', 693 | 6: '6', 694 | 7: '7', 695 | 8: '8', 696 | 9: '9', 697 | 10: '10', 698 | 11: '11', 699 | 12: '12', 700 | }, 701 | padding: ({ theme }) => theme('spacing'), 702 | placeholderColor: ({ theme }) => theme('colors'), 703 | placeholderOpacity: ({ theme }) => theme('opacity'), 704 | outlineColor: ({ theme }) => theme('colors'), 705 | outlineOffset: { 706 | 0: '0px', 707 | 1: '1px', 708 | 2: '2px', 709 | 4: '4px', 710 | 8: '8px', 711 | }, 712 | outlineWidth: { 713 | 0: '0px', 714 | 1: '1px', 715 | 2: '2px', 716 | 4: '4px', 717 | 8: '8px', 718 | }, 719 | ringColor: ({ theme }) => ({ 720 | DEFAULT: theme('colors.blue.500', '#3b82f6'), 721 | ...theme('colors'), 722 | }), 723 | ringOffsetColor: ({ theme }) => theme('colors'), 724 | ringOffsetWidth: { 725 | 0: '0px', 726 | 1: '1px', 727 | 2: '2px', 728 | 4: '4px', 729 | 8: '8px', 730 | }, 731 | ringOpacity: ({ theme }) => ({ 732 | DEFAULT: '0.5', 733 | ...theme('opacity'), 734 | }), 735 | ringWidth: { 736 | DEFAULT: '3px', 737 | 0: '0px', 738 | 1: '1px', 739 | 2: '2px', 740 | 4: '4px', 741 | 8: '8px', 742 | }, 743 | rotate: { 744 | 0: '0deg', 745 | 1: '1deg', 746 | 2: '2deg', 747 | 3: '3deg', 748 | 6: '6deg', 749 | 12: '12deg', 750 | 45: '45deg', 751 | 90: '90deg', 752 | 180: '180deg', 753 | }, 754 | saturate: { 755 | 0: '0', 756 | 50: '.5', 757 | 100: '1', 758 | 150: '1.5', 759 | 200: '2', 760 | }, 761 | scale: { 762 | 0: '0', 763 | 50: '.5', 764 | 75: '.75', 765 | 90: '.9', 766 | 95: '.95', 767 | 100: '1', 768 | 105: '1.05', 769 | 110: '1.1', 770 | 125: '1.25', 771 | 150: '1.5', 772 | }, 773 | scrollMargin: ({ theme }) => ({ 774 | ...theme('spacing'), 775 | }), 776 | scrollPadding: ({ theme }) => theme('spacing'), 777 | sepia: { 778 | 0: '0', 779 | DEFAULT: '100%', 780 | }, 781 | skew: { 782 | 0: '0deg', 783 | 1: '1deg', 784 | 2: '2deg', 785 | 3: '3deg', 786 | 6: '6deg', 787 | 12: '12deg', 788 | }, 789 | space: ({ theme }) => ({ 790 | ...theme('spacing'), 791 | }), 792 | stroke: ({ theme }) => theme('colors'), 793 | strokeWidth: { 794 | 0: '0', 795 | 1: '1', 796 | 2: '2', 797 | }, 798 | textColor: ({ theme }) => theme('colors'), 799 | textDecorationColor: ({ theme }) => theme('colors'), 800 | textDecorationThickness: { 801 | auto: 'auto', 802 | 'from-font': 'from-font', 803 | 0: '0px', 804 | 1: '1px', 805 | 2: '2px', 806 | 4: '4px', 807 | 8: '8px', 808 | }, 809 | textUnderlineOffset: { 810 | auto: 'auto', 811 | 0: '0px', 812 | 1: '1px', 813 | 2: '2px', 814 | 4: '4px', 815 | 8: '8px', 816 | }, 817 | textIndent: ({ theme }) => ({ 818 | ...theme('spacing'), 819 | }), 820 | textOpacity: ({ theme }) => theme('opacity'), 821 | transformOrigin: { 822 | center: 'center', 823 | top: 'top', 824 | 'top-right': 'top right', 825 | right: 'right', 826 | 'bottom-right': 'bottom right', 827 | bottom: 'bottom', 828 | 'bottom-left': 'bottom left', 829 | left: 'left', 830 | 'top-left': 'top left', 831 | }, 832 | transitionDelay: { 833 | 75: '75ms', 834 | 100: '100ms', 835 | 150: '150ms', 836 | 200: '200ms', 837 | 300: '300ms', 838 | 500: '500ms', 839 | 700: '700ms', 840 | 1000: '1000ms', 841 | }, 842 | transitionDuration: { 843 | DEFAULT: '150ms', 844 | 75: '75ms', 845 | 100: '100ms', 846 | 150: '150ms', 847 | 200: '200ms', 848 | 300: '300ms', 849 | 500: '500ms', 850 | 700: '700ms', 851 | 1000: '1000ms', 852 | }, 853 | transitionProperty: { 854 | none: 'none', 855 | all: 'all', 856 | DEFAULT: 857 | 'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter', 858 | colors: 'color, background-color, border-color, text-decoration-color, fill, stroke', 859 | opacity: 'opacity', 860 | shadow: 'box-shadow', 861 | transform: 'transform', 862 | }, 863 | transitionTimingFunction: { 864 | DEFAULT: 'cubic-bezier(0.4, 0, 0.2, 1)', 865 | linear: 'linear', 866 | in: 'cubic-bezier(0.4, 0, 1, 1)', 867 | out: 'cubic-bezier(0, 0, 0.2, 1)', 868 | 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)', 869 | }, 870 | translate: ({ theme }) => ({ 871 | ...theme('spacing'), 872 | '1/2': '50%', 873 | '1/3': '33.333333%', 874 | '2/3': '66.666667%', 875 | '1/4': '25%', 876 | '2/4': '50%', 877 | '3/4': '75%', 878 | full: '100%', 879 | }), 880 | width: ({ theme }) => ({ 881 | auto: 'auto', 882 | ...theme('spacing'), 883 | '1/2': '50%', 884 | '1/3': '33.333333%', 885 | '2/3': '66.666667%', 886 | '1/4': '25%', 887 | '2/4': '50%', 888 | '3/4': '75%', 889 | '1/5': '20%', 890 | '2/5': '40%', 891 | '3/5': '60%', 892 | '4/5': '80%', 893 | '1/6': '16.666667%', 894 | '2/6': '33.333333%', 895 | '3/6': '50%', 896 | '4/6': '66.666667%', 897 | '5/6': '83.333333%', 898 | '1/12': '8.333333%', 899 | '2/12': '16.666667%', 900 | '3/12': '25%', 901 | '4/12': '33.333333%', 902 | '5/12': '41.666667%', 903 | '6/12': '50%', 904 | '7/12': '58.333333%', 905 | '8/12': '66.666667%', 906 | '9/12': '75%', 907 | '10/12': '83.333333%', 908 | '11/12': '91.666667%', 909 | full: '100%', 910 | screen: '100vw', 911 | min: 'min-content', 912 | max: 'max-content', 913 | fit: 'fit-content', 914 | }), 915 | willChange: { 916 | auto: 'auto', 917 | scroll: 'scroll-position', 918 | contents: 'contents', 919 | transform: 'transform', 920 | }, 921 | zIndex: { 922 | auto: 'auto', 923 | 0: '0', 924 | 10: '10', 925 | 20: '20', 926 | 30: '30', 927 | 40: '40', 928 | 50: '50', 929 | }, 930 | }, 931 | variantOrder: [ 932 | 'first', 933 | 'last', 934 | 'odd', 935 | 'even', 936 | 'visited', 937 | 'checked', 938 | 'empty', 939 | 'read-only', 940 | 'group-hover', 941 | 'group-focus', 942 | 'focus-within', 943 | 'hover', 944 | 'focus', 945 | 'focus-visible', 946 | 'active', 947 | 'disabled', 948 | ], 949 | plugins: [], 950 | } 951 | --------------------------------------------------------------------------------