initial commit

This commit is contained in:
heet bhalodiya 2025-04-23 15:49:26 +05:30
commit 7089a4c8e9
306 changed files with 30623 additions and 0 deletions

15
.editorconfig Normal file
View file

@ -0,0 +1,15 @@
# Editor configuration, see http://editorconfig.org
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
max_line_length = off
trim_trailing_whitespace = false
[*.yml]
[*.{yml,yaml}]
indent_size = 2

2
.env.example Normal file
View file

@ -0,0 +1,2 @@
BASEPATH=
NEXT_PUBLIC_APP_URL=

120
.eslintrc.js Normal file
View file

@ -0,0 +1,120 @@
module.exports = {
extends: ['next/core-web-vitals', 'plugin:@typescript-eslint/recommended', 'plugin:import/recommended', 'prettier'],
parserOptions: {
project: './tsconfig.json'
},
globals: {
React: true,
JSX: true
},
ignorePatterns: ['node_modules/', 'dist/', '.eslintrc.js', '**/*.css'],
rules: {
'jsx-a11y/alt-text': 'off',
'react/display-name': 'off',
'react/no-children-prop': 'off',
'@next/next/no-img-element': 'off',
'@next/next/no-page-custom-font': 'off',
'@typescript-eslint/consistent-type-imports': 'error',
'@typescript-eslint/ban-ts-comment': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-unused-vars': 'error',
'@typescript-eslint/no-non-null-assertion': 'off',
'lines-around-comment': [
'error',
{
beforeBlockComment: true,
beforeLineComment: true,
allowBlockStart: true,
allowObjectStart: true,
allowArrayStart: true
}
],
'padding-line-between-statements': [
'error',
{
blankLine: 'any',
prev: 'export',
next: 'export'
},
{
blankLine: 'always',
prev: ['const', 'let', 'var'],
next: '*'
},
{
blankLine: 'any',
prev: ['const', 'let', 'var'],
next: ['const', 'let', 'var']
},
{
blankLine: 'always',
prev: '*',
next: ['function', 'multiline-const', 'multiline-block-like']
},
{
blankLine: 'always',
prev: ['function', 'multiline-const', 'multiline-block-like'],
next: '*'
}
],
'newline-before-return': 'error',
'import/newline-after-import': [
'error',
{
count: 1
}
],
'import/order': [
'error',
{
groups: ['builtin', 'external', ['internal', 'parent', 'sibling', 'index'], ['object', 'unknown']],
pathGroups: [
{
pattern: 'react',
group: 'external',
position: 'before'
},
{
pattern: 'next/** | next',
group: 'external',
position: 'before'
},
{
pattern: '~/**',
group: 'external',
position: 'before'
},
{
pattern: '@/**',
group: 'internal'
}
],
pathGroupsExcludedImportTypes: ['react', 'type'],
'newlines-between': 'always-and-inside-groups'
}
]
},
settings: {
react: {
version: 'detect'
},
'import/parsers': {
'@typescript-eslint/parser': ['.ts', '.tsx']
},
'import/resolver': {
node: {},
typescript: {
project: './tsconfig.json'
}
}
},
overrides: [
{
files: ['*.ts', '*.tsx'],
rules: {
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-var-requires': 'off'
}
}
]
}

42
.gitignore vendored Normal file
View file

@ -0,0 +1,42 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions
# testing
/coverage
# next.js
/.next/
/out/
# production
/build
# misc
.DS_Store
*.pem
# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
# env files (can opt-in for committing if needed)
.env*.local
.env
# vercel
.vercel
# typescript
*.tsbuildinfo
next-env.d.ts

2
.npmrc Normal file
View file

@ -0,0 +1,2 @@
auto-install-peers = true
shamefully-hoist=true

24
.prettierrc.json Normal file
View file

@ -0,0 +1,24 @@
{
"arrowParens": "avoid",
"bracketSpacing": true,
"htmlWhitespaceSensitivity": "css",
"insertPragma": false,
"bracketSameLine": false,
"jsxSingleQuote": true,
"printWidth": 120,
"proseWrap": "preserve",
"quoteProps": "as-needed",
"requirePragma": false,
"semi": false,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "none",
"useTabs": false,
"plugins": [
"prettier-plugin-tailwindcss"
],
"tailwindFunctions": [
"clsx",
"cva"
]
}

23
.vscode/extensions.json vendored Normal file
View file

@ -0,0 +1,23 @@
{
"recommendations": [
"formulahendry.auto-close-tag",
"steoates.autoimport",
"mgmcdermott.vscode-language-babel",
"aaron-bond.better-comments",
"streetsidesoftware.code-spell-checker",
"naumovs.color-highlight",
"mikestead.dotenv",
"EditorConfig.EditorConfig",
"usernamehw.errorlens",
"dbaeumer.vscode-eslint",
"eamodio.gitlens",
"xabikos.JavaScriptSnippets",
"christian-kohler.npm-intellisense",
"christian-kohler.path-intellisense",
"esbenp.prettier-vscode",
"MylesMurphy.prettify-ts",
"yoavbls.pretty-ts-errors",
"jasonnutter.search-node-modules",
"bradlc.vscode-tailwindcss"
]
}

52
.vscode/settings.json vendored Normal file
View file

@ -0,0 +1,52 @@
{
// JS
"javascript.updateImportsOnFileMove.enabled": "always",
// JSON
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
"[jsonc]": {
"editor.defaultFormatter": "vscode.json-language-features"
},
// VSCode Editor
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
"source.organizeImports": "never",
"source.fixAll.stylelint": "explicit"
},
// Extension: Git
"git.rebaseWhenSync": true,
"git.autofetch": true,
"git.enableSmartCommit": true,
// Extension: Prettier
"prettier.requireConfig": true,
// Extension: ESLint
"eslint.validate": [
"javascript",
"typescript",
"javascriptreact",
"typescriptreact"
],
"eslint.format.enable": true,
"eslint.workingDirectories": [
{
"mode": "auto"
}
],
"markdown.extension.toc.updateOnSave": false,
"files.insertFinalNewline": true,
"editor.linkedEditing": true,
"typescript.tsdk": "node_modules/typescript/lib",
"cSpell.words": [
"cmdk",
"customizer",
"jetship",
"pixinvent",
"shadcn",
"themeselection",
"turbopack",
"vercel"
]
}

11
CHANGELOG.md Normal file
View file

@ -0,0 +1,11 @@
<!-- Available h3 headings: Added, Fixed, Updated, Removed, Deprecated -->
# Changelog
All notable changes to this project will be documented in this file.
## v1.0.0-alpha.1 (2025-04-23)
### Added
- Initial Release

21
LICENSE.md Normal file
View file

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2025 shadcn/studio
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.

144
README.md Normal file
View file

@ -0,0 +1,144 @@
<a href="https://shadcnstudio.com">
<img alt="shadcn/studio logo" width="800" src="https://cdn.shadcnstudio.com/ss-assets/smm/marketing/shadcn-studio-smm-banner.png">
</a><br/><br/>
[shadcn/studio](https://shadcnstudio.com) is an open-source shadcn registry of copy-and-paste components, blocks, and templates—paired with a powerful theme editor to craft, customize, and ship faster. 🚀
<p>
<a href="https://github.com/themeselection/shadcn-studio/blob/main/LICENSE.md"><img src="https://img.shields.io/badge/license-MIT-blue" alt="MIT License"></a>
<a href="https://x.com/ShadCNStudio" target="_blank">
<img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/ShadCNStudio">
</a>
</p>
<a href="https://themeselection.com" target="_blank">
<img
src="https://cdn.shadcnstudio.com/ts-assets/themeselection/logo/logo.png"
alt="themeselection logo"
height="30"
/>
</a>
Supported by [ThemeSelection](https://themeselection.com), with a commitment to empowering the open-source community.
---
## Table of Contents 📋
- [Table of Contents 📋](#table-of-contents-)
- [Overview 🌏](#overview-)
- [Not a standard library, but a distribution of components](#not-a-standard-library-but-a-distribution-of-components)
- [Why should I use shadcn/studio? 💡](#why-should-i-use-shadcnstudio-)
- [This is where shadcn/studio shines ✨](#this-is-where-shadcnstudio-shines-)
- [Features ✨](#features-)
- [Documentation 📚](#documentation-)
- [Available Components 🧩](#available-components-)
- [Component Examples](#component-examples)
- [Community 🤝](#community-)
- [Credits 🤘](#credits-)
- [License ©](#license-)
- [Useful Links 🎁](#useful-links-)
---
## Overview 🌏
**This isn&apos;t a traditional component library or a replacement for Shadcn**. Instead, it&apos;s a unique collection offers customizable variants of components, blocks, and templates. Preview, customize, and copy-paste them into your apps with ease.
Building on the solid foundation of the Shadcn registry, we&apos;ve enhanced it with custom-designed components & blocks to give you a head start. This allows you to craft, customize, and ship your projects faster and more efficiently.
### Not a standard library, but a distribution of components
Following the philosophy of Shadcn, shadcn/studio isn&apos;t a conventional “install-from-NPM” library. Rather, it&apos;s an open-source distribution of components designed for maximum adaptability. You can copy the code, modify styles, adjust logic, or integrate it with other tools—free from the limitations of typical libraries. This &quot;open code&quot; model empowers you to customize with confidence and creativity.
## Why should I use shadcn/studio? 💡
shadcn/ui aims to provide core components with a unique distribution system, allowing developers to copy and paste reusable, customizable UI elements directly into their codebase.
While this approach offers flexibility and control, it comes with some limitations: a lack of diverse component variants examples, limited theme customization options, and limited pre-built blocks. Additionally, its extensive customization options, though powerful, can sometimes feel overwhelming, especially for those seeking a more guided or streamlined experience.
## This is where shadcn/studio shines ✨
An open-source Shadcn registry of copy-and-paste components, blocks, and templates—paired with a powerful theme editor to craft, customize, and ship faster 🚀. It provides a robust toolkit for building stunning, interactive user interfaces with ease.
- **Open-source:** Dive into a growing, community-driven collection of copy-and-paste components, blocks, and templates.
- **Component & Blocks variants:** Access a diverse, collection of customizable shadcn component and block variants to quickly build and style your UI with ease.
- **Animated variants with Motion:** Add smooth, modern animations to your components, enhancing user experiences with minimal effort.
- **Powerful theme editor:** Tailor your UI effortlessly with real-time previews, ensuring consistent, branded designs delivered faster.
## Features ✨
1. **Live Theme Generator:** See your shadcn components transform instantly as you experiment with styles in real time.
2. **Color Mastery:** Play with background, text, and border hues using a sleek color picker for a unified design.
3. **Typography Fine-Tuning:** Perfect your text with adjustable font sizes, weights, and transformations for a polished look.
4. **Tailwind v4 Compatibility:** Effortlessly use Tailwind v4, supporting OKLCH, HSL, RGB & HEX color formats.
5. **Stunning Theme Starters:** Kick off with gorgeous pre-built themes and customize light or dark modes in a breeze.
6. **Hold to Save Theme:** Preserve your custom themes with a quick hold, making them easy to reuse or share later.
## Documentation 📚
For comprehensive documentation, please visit [shadcnstudio.com](https://shadcnstudio.com).
## Available Components 🧩
shadcn/studio provides an open-source collection of copy-and-paste Shadcn Components designed to accelerate your project development. Below is a summary of the available component categories:
### Component Examples
<table>
<tr>
<td width="33.3333%">Avatar</td>
<td width="33.3333%">Badge</td>
<td width="33.3333%">Breadcrumb</td>
</tr>
<tr>
<td width="33.3333%" align="center">
<a href="https://shadcnstudio.com/docs/components/avatar">
<img alt="Shadcn Avatar" src="https://cdn.shadcnstudio.com/ss-assets/components-svg/components/avatar.svg">
</a>
</td>
<td width="33.3333%" align="center">
<a href="https://shadcnstudio.com/docs/components/badge">
<img alt="Shadcn Badge" src="https://cdn.shadcnstudio.com/ss-assets/components-svg/components/badge.svg">
</a>
</td>
<td width="33.3333%" align="center">
<a href="https://shadcnstudio.com/docs/components/breadcrumb">
<img alt="Shadcn Breadcrumb" src="https://cdn.shadcnstudio.com/ss-assets/components-svg/navigations/breadcrumb.svg">
</a>
</td>
</tr>
</table>
[Explore all components](https://shadcnstudio.com/docs/components/avatar)
## Community 🤝
Join the shadcn/studio community to discuss the library, ask questions, and share your experiences:
- 🐦 [Follow us on Twitter](https://x.com/ShadCNStudio)
- 🎮 [Join us on Discord](https://discord.com/invite/kBHkY7DekX)
## Credits 🤘
We are grateful for the contributions of the open-source community, particularly:
- [shadcn/ui](https://ui.shadcn.com/)
- [tweakcn](https://tweakcn.com/) (Our Theme Editor is heavily inspired by tweakcn)
These projects form the backbone of shadcn/studio, allowing us to build a powerful shadcn registry of copy-and-paste components.
## License ©
- Copyright © [ThemeSelection](https://themeselection.com/)
- Licensed under [MIT](https://github.com/themeselection/shadcn-studio/blob/main/LICENSE.md)
- shadcn/studio is an open-source shadcn registry of copy-and-paste components, blocks, and templates—paired with a powerful theme editor to craft, customize, and ship faster.
## Useful Links 🎁
- [Saas Boilerplates](https://themeselection.com/item/category/saas-boilerplate)
- [Next.js Admin Template](https://themeselection.com/item/category/next-js-admin-template/)
- [Vue CheatSheet](https://vue-cheatsheet.themeselection.com/)
- [Freebies](https://themeselection.com/item/category/freebies/)
- [Free Admin Templates](https://themeselection.com/item/category/free-admin-templates/)
- [Bootstrap 5 CheatSheet](https://bootstrap-cheatsheet.themeselection.com/)

21
components.json Normal file
View file

@ -0,0 +1,21 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": true,
"tsx": true,
"tailwind": {
"config": "",
"css": "src/app/globals.css",
"baseColor": "zinc",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "@/components",
"hooks": "@/registry/new-york/hooks",
"lib": "@/registry/new-york/lib",
"utils": "@/registry/new-york/lib/utils",
"ui": "@/registry/new-york/ui"
},
"iconLibrary": "lucide"
}

29
next.config.ts Normal file
View file

@ -0,0 +1,29 @@
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
basePath: process.env.BASEPATH,
redirects: async () => {
return [
{
source: '/',
destination: '/theme-editor',
permanent: true
},
{
source: '/docs',
destination: '/docs/getting-started/introduction',
permanent: true
}
]
},
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'images.unsplash.com'
}
]
}
}
export default nextConfig

85
package.json Normal file
View file

@ -0,0 +1,85 @@
{
"name": "shadcn-studio-internal",
"version": "1.0.0-alpha.1",
"license": "MIT",
"publishConfig": {
"access": "public"
},
"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start",
"lint": "next lint",
"lint:fix": "next lint --fix",
"format": "prettier --write \"src/**/*.{js,jsx,ts,tsx,md,mdx}\"",
"check-types": "tsc --noEmit",
"registry:build": "shadcn build",
"registry:theme-generate": "tsx scripts/generate-theme-registry.ts",
"clean": "rm -rf .next *.tsbuildinfo",
"clean:node_modules": "rm -rf .next node_modules *.tsbuildinfo"
},
"dependencies": {
"@radix-ui/react-accordion": "^1.2.3",
"@radix-ui/react-avatar": "^1.1.3",
"@radix-ui/react-checkbox": "^1.1.4",
"@radix-ui/react-collapsible": "^1.1.3",
"@radix-ui/react-context-menu": "^2.2.7",
"@radix-ui/react-dialog": "^1.1.6",
"@radix-ui/react-dropdown-menu": "^2.1.6",
"@radix-ui/react-label": "^2.1.2",
"@radix-ui/react-menubar": "^1.1.7",
"@radix-ui/react-popover": "^1.1.6",
"@radix-ui/react-radio-group": "^1.2.3",
"@radix-ui/react-scroll-area": "^1.2.3",
"@radix-ui/react-select": "^2.1.6",
"@radix-ui/react-separator": "^1.1.2",
"@radix-ui/react-slider": "^1.2.3",
"@radix-ui/react-slot": "^1.1.2",
"@radix-ui/react-switch": "^1.1.3",
"@radix-ui/react-tabs": "^1.1.3",
"@radix-ui/react-toggle": "^1.1.2",
"@radix-ui/react-toggle-group": "^1.1.2",
"@radix-ui/react-tooltip": "^1.1.8",
"@tanstack/react-table": "^8.21.2",
"chroma-js": "^3.1.2",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
"date-fns": "^4.1.0",
"hast-util-to-jsx-runtime": "^2.3.6",
"lucide-react": "^0.483.0",
"next": "^15.2.4",
"next-themes": "^0.4.6",
"react": "^19.0.0",
"react-day-picker": "8.10.1",
"react-dom": "^19.0.0",
"react-resizable-panels": "^2.1.7",
"react-use": "^17.6.0",
"recharts": "^2.15.1",
"server-only": "^0.0.1",
"shadcn": "2.4.0-canary.13",
"shepherd.js": "^14.5.0",
"sonner": "^2.0.1",
"tailwind-merge": "^3.0.2",
"tw-animate-css": "^1.2.4"
},
"devDependencies": {
"@tailwindcss/postcss": "^4.0.15",
"@types/chroma-js": "^3.1.1",
"@types/eslint": "^8.56.12",
"@types/node": "^22.13.13",
"@types/react": "^19.0.12",
"@types/react-dom": "^19.0.4",
"@typescript-eslint/eslint-plugin": "^7.18.0",
"@typescript-eslint/parser": "^7.18.0",
"eslint": "^8.57.1",
"eslint-config-next": "^15.2.4",
"eslint-config-prettier": "^10.1.1",
"eslint-plugin-import": "^2.31.0",
"prettier": "^3.5.3",
"prettier-plugin-tailwindcss": "^0.6.11",
"shiki": "^3.2.2",
"tailwindcss": "^4.0.15",
"typescript": "5.5.4"
}
}

8278
pnpm-lock.yaml Normal file

File diff suppressed because it is too large Load diff

5
postcss.config.mjs Normal file
View file

@ -0,0 +1,5 @@
const config = {
plugins: ['@tailwindcss/postcss']
}
export default config

16
public/r/avatar-01.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-01",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-01.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst AvatarDemo = () => {\n return (\n <Avatar>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n )\n}\n\nexport default AvatarDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-01.tsx"
}
]
}

16
public/r/avatar-02.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-02",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-02.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst AvatarRingDemo = () => {\n return (\n <Avatar className='ring-ring ring-2'>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n )\n}\n\nexport default AvatarRingDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-02.tsx"
}
]
}

16
public/r/avatar-03.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-03",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-03.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst AvatarRoundedDemo = () => {\n return (\n <Avatar className='rounded-sm'>\n <AvatarImage\n src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png'\n alt='Hallie Richards'\n className='rounded-sm'\n />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n )\n}\n\nexport default AvatarRoundedDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-03.tsx"
}
]
}

16
public/r/avatar-04.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-04",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-04.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst AvatarSizeDemo = () => {\n return (\n <Avatar className='size-12'>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n )\n}\n\nexport default AvatarSizeDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-04.tsx"
}
]
}

16
public/r/avatar-05.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-05",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-05.tsx",
"content": "import { Avatar, AvatarFallback } from '@/registry/new-york/ui/avatar'\n\nconst AvatarFallbackDemo = () => {\n return (\n <Avatar>\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n )\n}\n\nexport default AvatarFallbackDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-05.tsx"
}
]
}

19
public/r/avatar-06.json Normal file
View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-06",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-06.tsx",
"content": "import { HomeIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback } from '@/registry/new-york/ui/avatar'\n\nconst AvatarIconDemo = () => {\n return (\n <Avatar>\n <AvatarFallback className='bg-indigo-500/10 text-indigo-500'>\n <HomeIcon className='size-4' />\n </AvatarFallback>\n </Avatar>\n )\n}\n\nexport default AvatarIconDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-06.tsx"
}
]
}

16
public/r/avatar-07.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-07",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-07.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst AvatarStatusBusyDemo = () => {\n return (\n <div className='relative w-fit'>\n <Avatar>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n <span className='border-background bg-destructive absolute -end-0.5 -bottom-0.5 size-3 rounded-full border-2'>\n <span className='sr-only'>Busy</span>\n </span>\n </div>\n )\n}\n\nexport default AvatarStatusBusyDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-07.tsx"
}
]
}

19
public/r/avatar-08.json Normal file
View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-08",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-08.tsx",
"content": "import { CheckIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst AvatarStatusRingDemo = () => {\n return (\n <div className='relative w-fit'>\n <Avatar className='ring-offset-background ring-2 ring-green-600 ring-offset-2 dark:ring-green-400'>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n <span className='absolute -end-1.5 -bottom-1.5 inline-flex size-4 items-center justify-center rounded-full bg-green-600 dark:bg-green-400'>\n <CheckIcon className='size-3 text-white' />\n </span>\n </div>\n )\n}\n\nexport default AvatarStatusRingDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-08.tsx"
}
]
}

16
public/r/avatar-09.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-09",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-09.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst AvatarStatusAwayDemo = () => {\n return (\n <div className='relative w-fit'>\n <Avatar className='rounded-sm'>\n <AvatarImage\n src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png'\n alt='Hallie Richards'\n className='rounded-sm'\n />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n <span className='border-background absolute -end-1.5 -top-1.5 size-3 rounded-full border-2 bg-amber-600 dark:bg-amber-400'>\n <span className='sr-only'>Away</span>\n </span>\n </div>\n )\n}\n\nexport default AvatarStatusAwayDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-09.tsx"
}
]
}

19
public/r/avatar-10.json Normal file
View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-10",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-10.tsx",
"content": "import { PlusCircleIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst AvatarPlusDemo = () => {\n return (\n <div className='relative w-fit'>\n <Avatar className='size-10'>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n <button className='focus-visible:ring-ring/50 absolute -end-1 -bottom-1 inline-flex cursor-pointer items-center justify-center rounded-full focus-visible:ring-[3px] focus-visible:outline-none'>\n <PlusCircleIcon className='text-background size-5 fill-slate-400' />\n </button>\n </div>\n )\n}\n\nexport default AvatarPlusDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-10.tsx"
}
]
}

17
public/r/avatar-11.json Normal file
View file

@ -0,0 +1,17 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-11",
"type": "registry:component",
"registryDependencies": [
"avatar",
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-11.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\nimport { Badge } from '@/registry/new-york/ui/badge'\n\nconst AvatarNotificationBadgeDemo = () => {\n return (\n <div className='relative w-fit'>\n <Avatar className='size-10 rounded-sm'>\n <AvatarImage\n src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png'\n alt='Hallie Richards'\n className='rounded-sm'\n />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n <Badge className='absolute -end-2.5 -top-2.5 h-5 min-w-5 rounded-full bg-indigo-500 px-1 tabular-nums'>8</Badge>\n </div>\n )\n}\n\nexport default AvatarNotificationBadgeDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-11.tsx"
}
]
}

19
public/r/avatar-12.json Normal file
View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-12",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-12.tsx",
"content": "import { BadgeCheckIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst AvatarVerifiedDemo = () => {\n return (\n <div className='relative w-fit'>\n <Avatar className='size-10'>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback className='text-xs'>HR</AvatarFallback>\n </Avatar>\n <span className='absolute -end-1.5 -top-1.5'>\n <span className='sr-only'>Verified</span>\n <BadgeCheckIcon className='text-background size-5 fill-sky-500' />\n </span>\n </div>\n )\n}\n\nexport default AvatarVerifiedDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-12.tsx"
}
]
}

16
public/r/avatar-13.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-13",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-13.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupDemo = () => {\n return (\n <div className='flex -space-x-2'>\n {avatars.map((avatar, index) => (\n <Avatar key={index} className='ring-background ring-2'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n ))}\n </div>\n )\n}\n\nexport default AvatarGroupDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-13.tsx"
}
]
}

16
public/r/avatar-14.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-14",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-14.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n }\n]\n\nconst AvatarGroupMaxDemo = () => {\n return (\n <div className='flex -space-x-2'>\n {avatars.map((avatar, index) => (\n <Avatar key={index} className='ring-background ring-2'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n ))}\n <Avatar className='ring-background ring-2'>\n <AvatarFallback className='text-xs'>+9</AvatarFallback>\n </Avatar>\n </div>\n )\n}\n\nexport default AvatarGroupMaxDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-14.tsx"
}
]
}

16
public/r/avatar-15.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-15",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-15.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupSizeDemo = () => {\n return (\n <div className='flex -space-x-2'>\n {avatars.map((avatar, index) => (\n <Avatar key={index} className='ring-background size-12 ring-2'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback>{avatar.fallback}</AvatarFallback>\n </Avatar>\n ))}\n </div>\n )\n}\n\nexport default AvatarGroupSizeDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-15.tsx"
}
]
}

17
public/r/avatar-16.json Normal file
View file

@ -0,0 +1,17 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-16",
"type": "registry:component",
"registryDependencies": [
"avatar",
"tooltip"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-16.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/registry/new-york/ui/tooltip'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupTooltipDemo = () => {\n return (\n <div className='flex -space-x-2'>\n {avatars.map((avatar, index) => (\n <TooltipProvider delayDuration={0} key={index}>\n <Tooltip>\n <TooltipTrigger asChild>\n <Avatar className='ring-background ring-2 transition-all duration-300 ease-in-out hover:z-1 hover:-translate-y-1 hover:shadow-md'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n </TooltipTrigger>\n <TooltipContent>{avatar.name}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n ))}\n </div>\n )\n}\n\nexport default AvatarGroupTooltipDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-16.tsx"
}
]
}

16
public/r/avatar-17.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-17",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-17.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupTransitionDemo = () => {\n return (\n <div className='flex -space-x-2 hover:space-x-1'>\n {avatars.map((avatar, index) => (\n <Avatar key={index} className='ring-background ring-2 transition-all duration-300 ease-in-out'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n ))}\n </div>\n )\n}\n\nexport default AvatarGroupTransitionDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-17.tsx"
}
]
}

17
public/r/avatar-18.json Normal file
View file

@ -0,0 +1,17 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-18",
"type": "registry:component",
"registryDependencies": [
"avatar",
"tooltip"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-18.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/registry/new-york/ui/tooltip'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupTooltipTransitionDemo = () => {\n return (\n <div className='flex -space-x-2 hover:space-x-1'>\n {avatars.map((avatar, index) => (\n <TooltipProvider delayDuration={0} key={index}>\n <Tooltip>\n <TooltipTrigger asChild>\n <Avatar className='ring-background ring-2 transition-all duration-300 ease-in-out'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n </TooltipTrigger>\n <TooltipContent>{avatar.name}</TooltipContent>\n </Tooltip>\n </TooltipProvider>\n ))}\n </div>\n )\n}\n\nexport default AvatarGroupTooltipTransitionDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-18.tsx"
}
]
}

20
public/r/avatar-19.json Normal file
View file

@ -0,0 +1,20 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-19",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar",
"dropdown-menu"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-19.tsx",
"content": "import { PlusIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger\n} from '@/registry/new-york/ui/dropdown-menu'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-1.png',\n fallback: 'DR',\n name: 'Darlene Robertson'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-2.png',\n fallback: 'LA',\n name: 'Leslie Alexander'\n }\n]\n\nconst AvatarGroupDropdownDemo = () => {\n return (\n <div className='flex -space-x-2'>\n {avatars.slice(0, 3).map((avatar, index) => (\n <Avatar key={index} className='ring-background ring-2'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n ))}\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Avatar className='has-focus-visible:ring-ring/50 ring-background ring-2'>\n <AvatarFallback asChild>\n <button className='cursor-pointer'>\n <PlusIcon className='size-4' />\n </button>\n </AvatarFallback>\n </Avatar>\n </DropdownMenuTrigger>\n <DropdownMenuContent>\n {avatars.slice(3).map((avatar, index) => (\n <DropdownMenuItem key={index}>\n <Avatar>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n <span>{avatar.name}</span>\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n )\n}\n\nexport default AvatarGroupDropdownDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-19.tsx"
}
]
}

16
public/r/avatar-20.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-20",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-20.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupOutlineDemo = () => {\n return (\n <div className='bg-background flex items-center rounded-full border p-1 shadow-sm'>\n <div className='flex -space-x-2'>\n {avatars.map((avatar, index) => (\n <Avatar key={index} className='ring-background ring-2'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n ))}\n </div>\n <span className='text-muted-foreground hover:text-foreground flex items-center justify-center rounded-full bg-transparent px-2 text-xs shadow-none hover:bg-transparent'>\n +3\n </span>\n </div>\n )\n}\n\nexport default AvatarGroupOutlineDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-20.tsx"
}
]
}

16
public/r/avatar-21.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar-21",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-21.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst avatars = [\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-3.png',\n fallback: 'OS',\n name: 'Olivia Sparks'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-6.png',\n fallback: 'HL',\n name: 'Howard Lloyd'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png',\n fallback: 'HR',\n name: 'Hallie Richards'\n },\n {\n src: 'https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-16.png',\n fallback: 'JW',\n name: 'Jenny Wilson'\n }\n]\n\nconst AvatarGroupPopularityIndicatorDemo = () => {\n return (\n <div className='bg-background flex flex-wrap items-center justify-center rounded-full border p-1 shadow-sm'>\n <div className='flex -space-x-1'>\n {avatars.map((avatar, index) => (\n <Avatar key={index} className='ring-background size-6 ring-2'>\n <AvatarImage src={avatar.src} alt={avatar.name} />\n <AvatarFallback className='text-xs'>{avatar.fallback}</AvatarFallback>\n </Avatar>\n ))}\n </div>\n <p className='text-muted-foreground px-2 text-xs'>\n Loved by <strong className='text-foreground font-medium'>10K+</strong> developers.\n </p>\n </div>\n )\n}\n\nexport default AvatarGroupPopularityIndicatorDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-21.tsx"
}
]
}

16
public/r/badge-01.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-01",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-01.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeDemo = () => {\n return <Badge>Default</Badge>\n}\n\nexport default BadgeDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-01.tsx"
}
]
}

16
public/r/badge-02.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-02",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-02.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeSecondaryDemo = () => {\n return <Badge variant='secondary'>Secondary</Badge>\n}\n\nexport default BadgeSecondaryDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-02.tsx"
}
]
}

16
public/r/badge-03.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-03",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-03.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeDestructiveDemo = () => {\n return <Badge variant='destructive'>Destructive</Badge>\n}\n\nexport default BadgeDestructiveDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-03.tsx"
}
]
}

16
public/r/badge-04.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-04",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-04.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeOutlineDemo = () => {\n return <Badge variant='outline'>Outline</Badge>\n}\n\nexport default BadgeOutlineDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-04.tsx"
}
]
}

13
public/r/badge-05.json Normal file
View file

@ -0,0 +1,13 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-05",
"type": "registry:component",
"files": [
{
"path": "src/registry/new-york/components/badge/badge-05.tsx",
"content": "const BadgeDotDemo = () => {\n return (\n <span className='inline-flex w-fit shrink-0 items-center justify-center gap-1 px-2 py-0.5 text-xs font-medium whitespace-nowrap'>\n <span className='bg-primary size-2 rounded-full' aria-hidden='true' />\n Dot Badge\n </span>\n )\n}\n\nexport default BadgeDotDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-05.tsx"
}
]
}

16
public/r/badge-06.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-06",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-06.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeRoundedDemo = () => {\n return <Badge className='rounded-full'>Rounded</Badge>\n}\n\nexport default BadgeRoundedDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-06.tsx"
}
]
}

16
public/r/badge-07.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-07",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-07.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeNumberDemo = () => {\n return <Badge className='h-5 min-w-5 rounded-full px-1 tabular-nums'>8</Badge>\n}\n\nexport default BadgeNumberDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-07.tsx"
}
]
}

16
public/r/badge-08.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-08",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-08.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeLargeDemo = () => {\n return <Badge className='px-3 py-1'>Large</Badge>\n}\n\nexport default BadgeLargeDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-08.tsx"
}
]
}

16
public/r/badge-09.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-09",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-09.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeSmallDemo = () => {\n return <Badge className='px-1.5 py-px'>Small</Badge>\n}\n\nexport default BadgeSmallDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-09.tsx"
}
]
}

19
public/r/badge-10.json Normal file
View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-10",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-10.tsx",
"content": "import { StarIcon } from 'lucide-react'\n\nimport { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeWithIconDemo = () => {\n return (\n <Badge>\n <StarIcon className='size-3' />\n With Icon\n </Badge>\n )\n}\n\nexport default BadgeWithIconDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-10.tsx"
}
]
}

19
public/r/badge-11.json Normal file
View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-11",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-11.tsx",
"content": "import { ArrowRightIcon } from 'lucide-react'\n\nimport { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeLinkDemo = () => {\n return (\n <Badge asChild>\n <a href='#' className='focus-visible:ring-ring/50 focus-visible:ring-2 focus-visible:outline-0'>\n Link <ArrowRightIcon className='size-3' />\n </a>\n </Badge>\n )\n}\n\nexport default BadgeLinkDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-11.tsx"
}
]
}

19
public/r/badge-12.json Normal file
View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-12",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-12.tsx",
"content": "'use client'\n\nimport { useState } from 'react'\n\nimport { XIcon } from 'lucide-react'\n\nimport { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeClosableDemo = () => {\n const [isActive, setIsActive] = useState(true)\n\n if (!isActive) return null\n\n return (\n <Badge>\n Closable\n <button\n className='focus-visible:border-ring focus-visible:ring-ring/50 text-primary-foreground/60 hover:text-primary-foreground -my-px -ms-px -me-1.5 inline-flex size-4 shrink-0 cursor-pointer items-center justify-center rounded-[inherit] p-0 transition-[color,box-shadow] outline-none focus-visible:ring-[3px]'\n aria-label='Close'\n onClick={() => setIsActive(false)}\n >\n <XIcon className='size-3' aria-hidden='true' />\n </button>\n </Badge>\n )\n}\n\nexport default BadgeClosableDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-12.tsx"
}
]
}

20
public/r/badge-13.json Normal file
View file

@ -0,0 +1,20 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-13",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge",
"checkbox"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-13.tsx",
"content": "'use client'\n\nimport { useState, useId } from 'react'\n\nimport { CheckCircleIcon } from 'lucide-react'\n\nimport { Badge } from '@/registry/new-york/ui/badge'\nimport { Checkbox } from '@/registry/new-york/ui/checkbox'\n\nconst BadgeSelectableDemo = () => {\n const [selected, setSelected] = useState(false)\n\n const id = useId()\n\n return (\n <Badge\n variant={selected ? 'secondary' : 'outline'}\n className='has-focus-visible:border-ring/50 has-focus-visible:ring-ring/50 relative cursor-pointer outline-none has-focus-visible:ring-2'\n >\n <Checkbox\n id={id}\n className='peer sr-only after:absolute after:inset-0'\n checked={selected}\n onCheckedChange={checked => setSelected(!!checked)}\n />\n <CheckCircleIcon\n className='hidden size-3 text-green-600 peer-data-[state=checked]:block dark:text-green-400'\n aria-hidden='true'\n />\n <label htmlFor={id} className='cursor-pointer select-none after:absolute after:inset-0'>\n {selected ? 'Selected' : 'Selectable'}\n </label>\n </Badge>\n )\n}\n\nexport default BadgeSelectableDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-13.tsx"
}
]
}

16
public/r/badge-14.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-14",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-14.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeGradientDemo = () => {\n return (\n <Badge className='border-transparent bg-gradient-to-r from-indigo-500 to-pink-500 [background-size:105%] bg-center text-white'>\n Gradient\n </Badge>\n )\n}\n\nexport default BadgeGradientDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-14.tsx"
}
]
}

16
public/r/badge-15.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-15",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-15.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeGradientOutlineDemo = () => {\n return (\n <div className='flex items-center justify-center rounded-full bg-gradient-to-r from-indigo-500 to-pink-500 p-0.5'>\n <Badge className='bg-background hover:bg-background text-foreground rounded-full border-none'>\n Gradient Outline\n </Badge>\n </div>\n )\n}\n\nexport default BadgeGradientOutlineDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-15.tsx"
}
]
}

16
public/r/badge-16.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-16",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-16.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeInProgressDemo = () => {\n return (\n <Badge className='rounded-full border-none bg-amber-600/10 text-amber-600 focus-visible:ring-amber-600/20 focus-visible:outline-none dark:bg-amber-400/10 dark:text-amber-400 dark:focus-visible:ring-amber-400/40 [a&]:hover:bg-amber-600/5 dark:[a&]:hover:bg-amber-400/5'>\n <span className='size-1.5 rounded-full bg-amber-600 dark:bg-amber-400' aria-hidden='true' />\n In Progress\n </Badge>\n )\n}\n\nexport default BadgeInProgressDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-16.tsx"
}
]
}

16
public/r/badge-17.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-17",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-17.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeBlockedDemo = () => {\n return (\n <Badge className='bg-destructive/10 [a&]:hover:bg-destructive/5 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 text-destructive rounded-full border-none focus-visible:outline-none'>\n <span className='bg-destructive size-1.5 rounded-full' aria-hidden='true' />\n Blocked\n </Badge>\n )\n}\n\nexport default BadgeBlockedDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-17.tsx"
}
]
}

16
public/r/badge-18.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-18",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-18.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeCompletedDemo = () => {\n return (\n <Badge className='rounded-full border-none bg-green-600/10 text-green-600 focus-visible:ring-green-600/20 focus-visible:outline-none dark:bg-green-400/10 dark:text-green-400 dark:focus-visible:ring-green-400/40 [a&]:hover:bg-green-600/5 dark:[a&]:hover:bg-green-400/5'>\n <span className='size-1.5 rounded-full bg-green-600 dark:bg-green-400' aria-hidden='true' />\n Completed\n </Badge>\n )\n}\n\nexport default BadgeCompletedDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-18.tsx"
}
]
}

19
public/r/badge-19.json Normal file
View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-19",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-19.tsx",
"content": "import { AlertCircleIcon } from 'lucide-react'\n\nimport { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgePendingDemo = () => {\n return (\n <Badge\n variant='outline'\n className='border-amber-600 text-amber-600 dark:border-amber-400 dark:text-amber-400 [a&]:hover:bg-amber-600/10 [a&]:hover:text-amber-600/90 dark:[a&]:hover:bg-amber-400/10 dark:[a&]:hover:text-amber-400/90'\n >\n <AlertCircleIcon className='size-3' />\n Pending\n </Badge>\n )\n}\n\nexport default BadgePendingDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-19.tsx"
}
]
}

19
public/r/badge-20.json Normal file
View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-20",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-20.tsx",
"content": "import { BanIcon } from 'lucide-react'\n\nimport { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeFailedDemo = () => {\n return (\n <Badge\n variant='outline'\n className='text-destructive [a&]:hover:bg-destructive/10 [a&]:hover:text-destructive/90 border-destructive'\n >\n <BanIcon className='size-3' />\n Failed\n </Badge>\n )\n}\n\nexport default BadgeFailedDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-20.tsx"
}
]
}

19
public/r/badge-21.json Normal file
View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-21",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-21.tsx",
"content": "import { CheckCircleIcon } from 'lucide-react'\n\nimport { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeSuccessfulDemo = () => {\n return (\n <Badge\n variant='outline'\n className='border-green-600 text-green-600 dark:border-green-400 dark:text-green-400 [a&]:hover:bg-green-600/10 [a&]:hover:text-green-600/90 dark:[a&]:hover:bg-green-400/10 dark:[a&]:hover:text-green-400/90'\n >\n <CheckCircleIcon className='size-3' />\n Successful\n </Badge>\n )\n}\n\nexport default BadgeSuccessfulDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-21.tsx"
}
]
}

16
public/r/badge-22.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-22",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-22.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeAvatarDemo = () => {\n return (\n <Badge variant='outline' className='rounded-full p-1 pe-2'>\n <img\n src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png'\n alt='Hallie Richards'\n className='size-6 rounded-full'\n />\n Avatar\n </Badge>\n )\n}\n\nexport default BadgeAvatarDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-22.tsx"
}
]
}

20
public/r/badge-23.json Normal file
View file

@ -0,0 +1,20 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-23",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar",
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-23.tsx",
"content": "import { ShoppingCartIcon } from 'lucide-react'\n\nimport { Avatar, AvatarFallback } from '@/registry/new-york/ui/avatar'\nimport { Badge } from '@/registry/new-york/ui/badge'\n\nconst BadgeCartDemo = () => {\n return (\n <div className='relative w-fit'>\n <Avatar className='size-9 rounded-sm'>\n <AvatarFallback className='rounded-sm'>\n <ShoppingCartIcon className='size-5' />\n </AvatarFallback>\n </Avatar>\n <Badge className='absolute -end-2.5 -top-2.5 h-5 min-w-5 rounded-full px-1 tabular-nums'>8</Badge>\n </div>\n )\n}\n\nexport default BadgeCartDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-23.tsx"
}
]
}

16
public/r/badge-24.json Normal file
View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge-24",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-24.tsx",
"content": "import { Avatar, AvatarFallback, AvatarImage } from '@/registry/new-york/ui/avatar'\n\nconst BadgeStatusOnlineDemo = () => {\n return (\n <div className='relative w-fit'>\n <Avatar className='size-10'>\n <AvatarImage src='https://cdn.shadcnstudio.com/ss-assets/avatar/avatar-5.png' alt='Hallie Richards' />\n <AvatarFallback>HR</AvatarFallback>\n </Avatar>\n <span className='border-background absolute -end-0.5 -bottom-0.5 size-3 rounded-full border-2 bg-green-600 dark:bg-green-400'>\n <span className='sr-only'>Online</span>\n </span>\n </div>\n )\n}\n\nexport default BadgeStatusOnlineDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-24.tsx"
}
]
}

View file

@ -0,0 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "breadcrumb-01",
"type": "registry:component",
"registryDependencies": [
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-01.tsx",
"content": "import {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator\n} from '@/registry/new-york/ui/breadcrumb'\n\nconst BreadcrumbDemo = () => {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>Home</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>Documents</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage>Add Document</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n\nexport default BreadcrumbDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-01.tsx"
}
]
}

View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "breadcrumb-02",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-02.tsx",
"content": "import { HomeIcon } from 'lucide-react'\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator\n} from '@/registry/new-york/ui/breadcrumb'\n\nconst BreadcrumbSlashSeparatorDemo = () => {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href='#' className='flex items-center gap-2'>\n <HomeIcon className='size-4' />\n Home\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator> / </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>Documents</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator> / </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbPage>Add Document</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n\nexport default BreadcrumbSlashSeparatorDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-02.tsx"
}
]
}

View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "breadcrumb-03",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-03.tsx",
"content": "import { ChevronsRightIcon, FileIcon, FolderIcon, HomeIcon } from 'lucide-react'\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator\n} from '@/registry/new-york/ui/breadcrumb'\n\nconst BreadcrumbChevronsSeparatorDemo = () => {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>\n <HomeIcon className='size-4' />\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator>\n <ChevronsRightIcon />\n </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbLink href='#' className='flex items-center gap-2'>\n <FolderIcon className='size-4' />\n Documents\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator>\n <ChevronsRightIcon />\n </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbPage className='flex items-center gap-2'>\n <FileIcon className='inline size-4' />\n Add Document\n </BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n\nexport default BreadcrumbChevronsSeparatorDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-03.tsx"
}
]
}

View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "breadcrumb-04",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-04.tsx",
"content": "import { DotIcon } from 'lucide-react'\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator\n} from '@/registry/new-york/ui/breadcrumb'\n\nconst BreadcrumbDotSeparatorDemo = () => {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>Home</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator>\n <DotIcon className='size-4' />\n </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>Documents</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator>\n <DotIcon className='size-4' />\n </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbPage>Add Document</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n\nexport default BreadcrumbDotSeparatorDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-04.tsx"
}
]
}

View file

@ -0,0 +1,17 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "breadcrumb-05",
"type": "registry:component",
"registryDependencies": [
"badge",
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-05.tsx",
"content": "import { Badge } from '@/registry/new-york/ui/badge'\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator\n} from '@/registry/new-york/ui/breadcrumb'\n\nconst BreadcrumbTabsOutlineDemo = () => {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>\n <Badge variant='outline' className='text-muted-foreground hover:text-foreground rounded-full'>\n Home\n </Badge>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>\n <Badge variant='outline' className='text-muted-foreground hover:text-foreground rounded-full'>\n Documents\n </Badge>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage>\n <Badge variant='outline' className='border-primary text-primary rounded-full'>\n Add Document\n </Badge>\n </BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n\nexport default BreadcrumbTabsOutlineDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-05.tsx"
}
]
}

View file

@ -0,0 +1,21 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "breadcrumb-06",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge",
"breadcrumb",
"dropdown-menu"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-06.tsx",
"content": "import { ChevronDown, HomeIcon } from 'lucide-react'\n\nimport { Badge } from '@/registry/new-york/ui/badge'\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator\n} from '@/registry/new-york/ui/breadcrumb'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger\n} from '@/registry/new-york/ui/dropdown-menu'\n\nconst BreadcrumbWithDropdownDemo = () => {\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>\n <Badge variant='outline' className='text-muted-foreground hover:text-foreground rounded-full'>\n <HomeIcon className='size-3' />\n Home\n </Badge>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator> / </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>\n <Badge variant='outline' className='text-muted-foreground hover:text-foreground rounded-full'>\n Documents\n </Badge>\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator> / </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbPage>\n <DropdownMenu>\n <DropdownMenuTrigger className='flex items-center gap-1'>\n Add Document\n <ChevronDown className='size-4' />\n </DropdownMenuTrigger>\n <DropdownMenuContent align='start'>\n <DropdownMenuItem>Documentation</DropdownMenuItem>\n <DropdownMenuItem>Themes</DropdownMenuItem>\n <DropdownMenuItem>GitHub</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n\nexport default BreadcrumbWithDropdownDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-06.tsx"
}
]
}

View file

@ -0,0 +1,20 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "breadcrumb-07",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"breadcrumb",
"dropdown-menu"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-07.tsx",
"content": "'use client'\n\nimport { useState } from 'react'\n\nimport { ChevronsRightIcon, FolderIcon, FolderOpenIcon, HomeIcon } from 'lucide-react'\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator\n} from '@/registry/new-york/ui/breadcrumb'\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger\n} from '@/registry/new-york/ui/dropdown-menu'\n\nconst BreadcrumbWithIconDemo = () => {\n const [open, setOpen] = useState(false)\n\n return (\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>\n <HomeIcon className='size-4' />\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator>\n <ChevronsRightIcon />\n </BreadcrumbSeparator>\n <BreadcrumbItem className='flex items-center gap-2'>\n <DropdownMenu open={open} onOpenChange={setOpen}>\n <DropdownMenuTrigger className='flex cursor-pointer items-center gap-1'>\n {open ? <FolderOpenIcon className='size-4' /> : <FolderIcon className='size-4' />}\n </DropdownMenuTrigger>\n <DropdownMenuContent align='start'>\n <DropdownMenuItem>Documentation</DropdownMenuItem>\n <DropdownMenuItem>Themes</DropdownMenuItem>\n <DropdownMenuItem>GitHub</DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </BreadcrumbItem>\n <BreadcrumbSeparator>\n <ChevronsRightIcon />\n </BreadcrumbSeparator>\n <BreadcrumbItem>\n <BreadcrumbPage>Add Document</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n\nexport default BreadcrumbWithIconDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-07.tsx"
}
]
}

View file

@ -0,0 +1,19 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "breadcrumb-08",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-08.tsx",
"content": "import { HomeIcon } from 'lucide-react'\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator\n} from '@/registry/new-york/ui/breadcrumb'\n\nconst BreadcrumbOutlineDemo = () => {\n return (\n <Breadcrumb>\n <BreadcrumbList className='h-8 gap-2 rounded-md border px-3 text-sm'>\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>\n <HomeIcon className='size-4' />\n </BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbLink href='#'>Documents</BreadcrumbLink>\n </BreadcrumbItem>\n <BreadcrumbSeparator />\n <BreadcrumbItem>\n <BreadcrumbPage>Add Document</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </Breadcrumb>\n )\n}\n\nexport default BreadcrumbOutlineDemo\n",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-08.tsx"
}
]
}

View file

@ -0,0 +1,90 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "bold-tech",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"cssVars": {
"theme": {
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"radius": "0.625rem"
},
"light": {
"background": "oklch(1.00 0 0)",
"foreground": "oklch(0.36 0.14 278.70)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0.36 0.14 278.70)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.36 0.14 278.70)",
"primary": "oklch(0.61 0.22 292.73)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.96 0.02 295.27)",
"secondary-foreground": "oklch(0.46 0.21 277.03)",
"muted": "oklch(0.97 0.02 293.85)",
"muted-foreground": "oklch(0.54 0.25 293.02)",
"accent": "oklch(0.93 0.03 255.58)",
"accent-foreground": "oklch(0.42 0.18 265.64)",
"destructive": "oklch(0.64 0.21 25.33)",
"border": "oklch(0.93 0.03 272.81)",
"input": "oklch(0.93 0.03 272.81)",
"ring": "oklch(0.61 0.22 292.73)",
"chart-1": "oklch(0.61 0.22 292.73)",
"chart-2": "oklch(0.54 0.25 293.02)",
"chart-3": "oklch(0.49 0.24 292.59)",
"chart-4": "oklch(0.43 0.21 292.77)",
"chart-5": "oklch(0.38 0.18 293.75)",
"radius": "0.625rem",
"sidebar": "oklch(0.97 0.02 293.85)",
"sidebar-foreground": "oklch(0.36 0.14 278.70)",
"sidebar-primary": "oklch(0.61 0.22 292.73)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.93 0.03 255.58)",
"sidebar-accent-foreground": "oklch(0.42 0.18 265.64)",
"sidebar-border": "oklch(0.93 0.03 272.81)",
"sidebar-ring": "oklch(0.61 0.22 292.73)",
"font-sans": "Roboto, sans-serif",
"font-serif": "Playfair Display, serif",
"font-mono": "Fira Code, monospace"
},
"dark": {
"background": "oklch(0.21 0.04 265.76)",
"foreground": "oklch(0.93 0.03 272.81)",
"card": "oklch(0.26 0.09 281.29)",
"card-foreground": "oklch(0.93 0.03 272.81)",
"popover": "oklch(0.26 0.09 281.29)",
"popover-foreground": "oklch(0.93 0.03 272.81)",
"primary": "oklch(0.61 0.22 292.73)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.26 0.09 281.29)",
"secondary-foreground": "oklch(0.93 0.03 272.81)",
"muted": "oklch(0.26 0.09 281.29)",
"muted-foreground": "oklch(0.81 0.10 293.59)",
"accent": "oklch(0.46 0.21 277.03)",
"accent-foreground": "oklch(0.93 0.03 272.81)",
"destructive": "oklch(0.64 0.21 25.33)",
"border": "oklch(0.28 0.14 291.10)",
"input": "oklch(0.28 0.14 291.10)",
"ring": "oklch(0.61 0.22 292.73)",
"chart-1": "oklch(0.71 0.16 293.55)",
"chart-2": "oklch(0.61 0.22 292.73)",
"chart-3": "oklch(0.54 0.25 293.02)",
"chart-4": "oklch(0.49 0.24 292.59)",
"chart-5": "oklch(0.43 0.21 292.77)",
"sidebar": "oklch(0.21 0.04 265.76)",
"sidebar-foreground": "oklch(0.93 0.03 272.81)",
"sidebar-primary": "oklch(0.61 0.22 292.73)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.46 0.21 277.03)",
"sidebar-accent-foreground": "oklch(0.93 0.03 272.81)",
"sidebar-border": "oklch(0.28 0.14 291.10)",
"sidebar-ring": "oklch(0.61 0.22 292.73)",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace"
}
},
"css": {}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "caffeine",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"radius": "0.5rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.98 0 0)",
"foreground": "oklch(0.24 0 0)",
"card": "oklch(0.99 0 0)",
"card-foreground": "oklch(0.24 0 0)",
"popover": "oklch(0.99 0 0)",
"popover-foreground": "oklch(0.24 0 0)",
"primary": "oklch(0.43 0.04 42.00)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.92 0.07 76.67)",
"secondary-foreground": "oklch(0.35 0.07 41.41)",
"muted": "oklch(0.95 0 0)",
"muted-foreground": "oklch(0.50 0 0)",
"accent": "oklch(0.93 0 0)",
"accent-foreground": "oklch(0.24 0 0)",
"destructive": "oklch(0.63 0.19 33.26)",
"border": "oklch(0.88 0 0)",
"input": "oklch(0.88 0 0)",
"ring": "oklch(0.43 0.04 42.00)",
"chart-1": "oklch(0.43 0.04 42.00)",
"chart-2": "oklch(0.92 0.07 76.67)",
"chart-3": "oklch(0.93 0 0)",
"chart-4": "oklch(0.94 0.05 75.02)",
"chart-5": "oklch(0.43 0.04 42.00)",
"radius": "0.5rem",
"sidebar": "oklch(0.99 0 0)",
"sidebar-foreground": "oklch(0.26 0 0)",
"sidebar-primary": "oklch(0.33 0 0)",
"sidebar-primary-foreground": "oklch(0.99 0 0)",
"sidebar-accent": "oklch(0.98 0 0)",
"sidebar-accent-foreground": "oklch(0.33 0 0)",
"sidebar-border": "oklch(0.94 0 0)",
"sidebar-ring": "oklch(0.77 0 0)",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"spacing": "0.25rem",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.18 0 0)",
"foreground": "oklch(0.95 0 0)",
"card": "oklch(0.21 0 0)",
"card-foreground": "oklch(0.95 0 0)",
"popover": "oklch(0.21 0 0)",
"popover-foreground": "oklch(0.95 0 0)",
"primary": "oklch(0.92 0.05 67.14)",
"primary-foreground": "oklch(0.20 0.02 201.14)",
"secondary": "oklch(0.32 0.02 67.00)",
"secondary-foreground": "oklch(0.92 0.05 67.14)",
"muted": "oklch(0.25 0 0)",
"muted-foreground": "oklch(0.77 0 0)",
"accent": "oklch(0.29 0 0)",
"accent-foreground": "oklch(0.95 0 0)",
"destructive": "oklch(0.63 0.19 33.26)",
"border": "oklch(0.24 0.01 88.77)",
"input": "oklch(0.40 0 0)",
"ring": "oklch(0.92 0.05 67.14)",
"chart-1": "oklch(0.92 0.05 67.14)",
"chart-2": "oklch(0.32 0.02 67.00)",
"chart-3": "oklch(0.29 0 0)",
"chart-4": "oklch(0.35 0.02 67.11)",
"chart-5": "oklch(0.92 0.05 67.14)",
"sidebar": "oklch(0.21 0.01 285.56)",
"sidebar-foreground": "oklch(0.97 0 0)",
"sidebar-primary": "oklch(0.49 0.22 264.43)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.27 0.01 285.81)",
"sidebar-accent-foreground": "oklch(0.97 0 0)",
"sidebar-border": "oklch(0.27 0.01 285.81)",
"sidebar-ring": "oklch(0.87 0.01 286.27)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,90 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "candyland",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"cssVars": {
"theme": {
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"radius": "0.5rem"
},
"light": {
"background": "oklch(0.98 0.00 228.42)",
"foreground": "oklch(0.32 0 0)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0.32 0 0)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.32 0 0)",
"primary": "oklch(0.87 0.07 7.11)",
"primary-foreground": "oklch(0 0 0)",
"secondary": "oklch(0.81 0.08 225.74)",
"secondary-foreground": "oklch(0 0 0)",
"muted": "oklch(0.88 0.03 98.07)",
"muted-foreground": "oklch(0.54 0 0)",
"accent": "oklch(0.97 0.21 109.76)",
"accent-foreground": "oklch(0 0 0)",
"destructive": "oklch(0.64 0.21 25.33)",
"border": "oklch(0.87 0 0)",
"input": "oklch(0.87 0 0)",
"ring": "oklch(0.87 0.07 7.11)",
"chart-1": "oklch(0.87 0.07 7.11)",
"chart-2": "oklch(0.81 0.08 225.74)",
"chart-3": "oklch(0.97 0.21 109.76)",
"chart-4": "oklch(0.80 0.14 349.25)",
"chart-5": "oklch(0.74 0.23 142.85)",
"radius": "0.5rem",
"sidebar": "oklch(0.98 0.00 228.42)",
"sidebar-foreground": "oklch(0.32 0 0)",
"sidebar-primary": "oklch(0.87 0.07 7.11)",
"sidebar-primary-foreground": "oklch(0 0 0)",
"sidebar-accent": "oklch(0.97 0.21 109.76)",
"sidebar-accent-foreground": "oklch(0 0 0)",
"sidebar-border": "oklch(0.87 0 0)",
"sidebar-ring": "oklch(0.87 0.07 7.11)",
"font-sans": "Poppins, sans-serif",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "Roboto Mono, monospace"
},
"dark": {
"background": "oklch(0.23 0.01 264.30)",
"foreground": "oklch(0.92 0 0)",
"card": "oklch(0.32 0.01 223.62)",
"card-foreground": "oklch(0.92 0 0)",
"popover": "oklch(0.32 0.01 223.62)",
"popover-foreground": "oklch(0.92 0 0)",
"primary": "oklch(0.80 0.14 349.25)",
"primary-foreground": "oklch(0 0 0)",
"secondary": "oklch(0.74 0.23 142.85)",
"secondary-foreground": "oklch(0 0 0)",
"muted": "oklch(0.39 0 0)",
"muted-foreground": "oklch(0.72 0 0)",
"accent": "oklch(0.81 0.08 225.74)",
"accent-foreground": "oklch(0 0 0)",
"destructive": "oklch(0.64 0.21 25.33)",
"border": "oklch(0.39 0 0)",
"input": "oklch(0.39 0 0)",
"ring": "oklch(0.80 0.14 349.25)",
"chart-1": "oklch(0.80 0.14 349.25)",
"chart-2": "oklch(0.74 0.23 142.85)",
"chart-3": "oklch(0.81 0.08 225.74)",
"chart-4": "oklch(0.97 0.21 109.76)",
"chart-5": "oklch(0.87 0.18 90.37)",
"sidebar": "oklch(0.23 0.01 264.30)",
"sidebar-foreground": "oklch(0.92 0 0)",
"sidebar-primary": "oklch(0.80 0.14 349.25)",
"sidebar-primary-foreground": "oklch(0 0 0)",
"sidebar-accent": "oklch(0.81 0.08 225.74)",
"sidebar-accent-foreground": "oklch(0 0 0)",
"sidebar-border": "oklch(0.39 0 0)",
"sidebar-ring": "oklch(0.80 0.14 349.25)",
"radius": "0.5rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace"
}
},
"css": {}
}

133
public/r/themes/claude.json Normal file
View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "claude",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"radius": "0.5rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.98 0.01 93.48)",
"foreground": "oklch(0.34 0.03 94.42)",
"card": "oklch(0.98 0.01 93.48)",
"card-foreground": "oklch(0.19 0 0)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.27 0.02 99.70)",
"primary": "oklch(0.62 0.14 39.15)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.92 0.01 87.42)",
"secondary-foreground": "oklch(0.43 0.02 99.33)",
"muted": "oklch(0.93 0.02 91.55)",
"muted-foreground": "oklch(0.61 0.01 91.49)",
"accent": "oklch(0.92 0.01 87.42)",
"accent-foreground": "oklch(0.27 0.02 99.70)",
"destructive": "oklch(0.19 0 0)",
"border": "oklch(0.88 0.01 100.76)",
"input": "oklch(0.76 0.02 96.91)",
"ring": "oklch(0.59 0.17 252.92)",
"chart-1": "oklch(0.56 0.13 42.95)",
"chart-2": "oklch(0.69 0.16 290.29)",
"chart-3": "oklch(0.88 0.03 91.64)",
"chart-4": "oklch(0.88 0.04 298.21)",
"chart-5": "oklch(0.56 0.13 41.94)",
"radius": "0.5rem",
"sidebar": "oklch(0.97 0.01 93.49)",
"sidebar-foreground": "oklch(0.36 0.01 106.85)",
"sidebar-primary": "oklch(0.62 0.14 39.15)",
"sidebar-primary-foreground": "oklch(0.99 0 0)",
"sidebar-accent": "oklch(0.92 0.01 87.42)",
"sidebar-accent-foreground": "oklch(0.33 0 0)",
"sidebar-border": "oklch(0.94 0 0)",
"sidebar-ring": "oklch(0.77 0 0)",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"spacing": "0.25rem",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.27 0 0)",
"foreground": "oklch(0.81 0.01 93.53)",
"card": "oklch(0.27 0 0)",
"card-foreground": "oklch(0.98 0.01 93.48)",
"popover": "oklch(0.31 0 0)",
"popover-foreground": "oklch(0.92 0 0)",
"primary": "oklch(0.67 0.13 38.92)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.98 0.01 93.48)",
"secondary-foreground": "oklch(0.31 0 0)",
"muted": "oklch(0.22 0 0)",
"muted-foreground": "oklch(0.77 0.02 100.64)",
"accent": "oklch(0.21 0.01 88.79)",
"accent-foreground": "oklch(0.97 0.01 93.49)",
"destructive": "oklch(0.64 0.21 25.39)",
"border": "oklch(0.36 0.01 106.85)",
"input": "oklch(0.43 0.01 99.03)",
"ring": "oklch(0.59 0.17 252.92)",
"chart-1": "oklch(0.56 0.13 42.95)",
"chart-2": "oklch(0.69 0.16 290.29)",
"chart-3": "oklch(0.21 0.01 88.79)",
"chart-4": "oklch(0.31 0.05 289.74)",
"chart-5": "oklch(0.56 0.13 41.94)",
"sidebar": "oklch(0.24 0 0)",
"sidebar-foreground": "oklch(0.81 0.01 93.53)",
"sidebar-primary": "oklch(0.33 0 0)",
"sidebar-primary-foreground": "oklch(0.99 0 0)",
"sidebar-accent": "oklch(0.17 0 0)",
"sidebar-accent-foreground": "oklch(0.81 0.01 93.53)",
"sidebar-border": "oklch(0.94 0 0)",
"sidebar-ring": "oklch(0.77 0 0)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,90 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "claymorphism",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"cssVars": {
"theme": {
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"radius": "1.25rem"
},
"light": {
"background": "oklch(0.92 0.00 49.03)",
"foreground": "oklch(0.28 0.04 260.03)",
"card": "oklch(0.97 0 0)",
"card-foreground": "oklch(0.28 0.04 260.03)",
"popover": "oklch(0.97 0 0)",
"popover-foreground": "oklch(0.28 0.04 260.03)",
"primary": "oklch(0.59 0.20 277.12)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.87 0.00 56.48)",
"secondary-foreground": "oklch(0.45 0.03 256.80)",
"muted": "oklch(0.92 0.00 49.03)",
"muted-foreground": "oklch(0.55 0.02 264.37)",
"accent": "oklch(0.94 0.03 322.02)",
"accent-foreground": "oklch(0.37 0.03 259.73)",
"destructive": "oklch(0.64 0.21 25.33)",
"border": "oklch(0.87 0.00 56.48)",
"input": "oklch(0.87 0.00 56.48)",
"ring": "oklch(0.59 0.20 277.12)",
"chart-1": "oklch(0.59 0.20 277.12)",
"chart-2": "oklch(0.51 0.23 276.97)",
"chart-3": "oklch(0.46 0.21 277.03)",
"chart-4": "oklch(0.40 0.18 277.37)",
"chart-5": "oklch(0.36 0.14 278.70)",
"radius": "1.25rem",
"sidebar": "oklch(0.87 0.00 56.48)",
"sidebar-foreground": "oklch(0.28 0.04 260.03)",
"sidebar-primary": "oklch(0.59 0.20 277.12)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.94 0.03 322.02)",
"sidebar-accent-foreground": "oklch(0.37 0.03 259.73)",
"sidebar-border": "oklch(0.87 0.00 56.48)",
"sidebar-ring": "oklch(0.59 0.20 277.12)",
"font-sans": "Plus Jakarta Sans, sans-serif",
"font-serif": "Lora, serif",
"font-mono": "Roboto Mono, monospace"
},
"dark": {
"background": "oklch(0.22 0.01 67.44)",
"foreground": "oklch(0.93 0.01 255.51)",
"card": "oklch(0.28 0.01 59.35)",
"card-foreground": "oklch(0.93 0.01 255.51)",
"popover": "oklch(0.28 0.01 59.35)",
"popover-foreground": "oklch(0.93 0.01 255.51)",
"primary": "oklch(0.68 0.16 276.94)",
"primary-foreground": "oklch(0.22 0.01 67.44)",
"secondary": "oklch(0.34 0.01 59.44)",
"secondary-foreground": "oklch(0.87 0.01 258.36)",
"muted": "oklch(0.28 0.01 59.35)",
"muted-foreground": "oklch(0.71 0.02 261.33)",
"accent": "oklch(0.39 0.01 59.49)",
"accent-foreground": "oklch(0.87 0.01 258.36)",
"destructive": "oklch(0.64 0.21 25.33)",
"border": "oklch(0.34 0.01 59.44)",
"input": "oklch(0.34 0.01 59.44)",
"ring": "oklch(0.68 0.16 276.94)",
"chart-1": "oklch(0.68 0.16 276.94)",
"chart-2": "oklch(0.59 0.20 277.12)",
"chart-3": "oklch(0.51 0.23 276.97)",
"chart-4": "oklch(0.46 0.21 277.03)",
"chart-5": "oklch(0.40 0.18 277.37)",
"sidebar": "oklch(0.34 0.01 59.44)",
"sidebar-foreground": "oklch(0.93 0.01 255.51)",
"sidebar-primary": "oklch(0.68 0.16 276.94)",
"sidebar-primary-foreground": "oklch(0.22 0.01 67.44)",
"sidebar-accent": "oklch(0.39 0.01 59.49)",
"sidebar-accent-foreground": "oklch(0.87 0.01 258.36)",
"sidebar-border": "oklch(0.34 0.01 59.44)",
"sidebar-ring": "oklch(0.68 0.16 276.94)",
"radius": "1.25rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace"
}
},
"css": {}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "clean-slate",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "Inter, sans-serif",
"font-mono": "JetBrains Mono, monospace",
"font-serif": "Merriweather, serif",
"radius": "0.5rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.98 0 0)",
"foreground": "oklch(0.28 0.04 260.33)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0.28 0.04 260.33)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.28 0.04 260.33)",
"primary": "oklch(0.59 0.20 277.06)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.93 0.01 261.82)",
"secondary-foreground": "oklch(0.37 0.03 259.73)",
"muted": "oklch(0.97 0 0)",
"muted-foreground": "oklch(0.55 0.02 264.41)",
"accent": "oklch(0.93 0.03 273.66)",
"accent-foreground": "oklch(0.37 0.03 259.73)",
"destructive": "oklch(0.64 0.21 25.39)",
"border": "oklch(0.87 0.01 261.81)",
"input": "oklch(0.87 0.01 261.81)",
"ring": "oklch(0.59 0.20 277.06)",
"chart-1": "oklch(0.59 0.20 277.06)",
"chart-2": "oklch(0.51 0.23 276.97)",
"chart-3": "oklch(0.46 0.21 277.06)",
"chart-4": "oklch(0.40 0.18 277.16)",
"chart-5": "oklch(0.36 0.14 278.65)",
"radius": "0.5rem",
"sidebar": "oklch(0.97 0 0)",
"sidebar-foreground": "oklch(0.28 0.04 260.33)",
"sidebar-primary": "oklch(0.59 0.20 277.06)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.93 0.03 273.66)",
"sidebar-accent-foreground": "oklch(0.37 0.03 259.73)",
"sidebar-border": "oklch(0.87 0.01 261.81)",
"sidebar-ring": "oklch(0.59 0.20 277.06)",
"font-sans": "Inter, sans-serif",
"font-serif": "Merriweather, serif",
"font-mono": "JetBrains Mono, monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "8px",
"shadow-spread": "-1px",
"shadow-offset-x": "0px",
"shadow-offset-y": "4px",
"spacing": "0.25rem",
"shadow-2xs": "0px 4px 8px -1px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0px 4px 8px -1px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0px 4px 8px -1px oklch(0.00 0 0 / 0.10), 0px 1px 2px -2px oklch(0.00 0 0 / 0.10)",
"shadow": "0px 4px 8px -1px oklch(0.00 0 0 / 0.10), 0px 1px 2px -2px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0px 4px 8px -1px oklch(0.00 0 0 / 0.10), 0px 2px 4px -2px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0px 4px 8px -1px oklch(0.00 0 0 / 0.10), 0px 4px 6px -2px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0px 4px 8px -1px oklch(0.00 0 0 / 0.10), 0px 8px 10px -2px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0px 4px 8px -1px oklch(0.00 0 0 / 0.25)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.21 0.04 264.04)",
"foreground": "oklch(0.93 0.01 256.71)",
"card": "oklch(0.28 0.04 260.33)",
"card-foreground": "oklch(0.93 0.01 256.71)",
"popover": "oklch(0.28 0.04 260.33)",
"popover-foreground": "oklch(0.93 0.01 256.71)",
"primary": "oklch(0.68 0.16 276.93)",
"primary-foreground": "oklch(0.21 0.04 264.04)",
"secondary": "oklch(0.34 0.03 261.83)",
"secondary-foreground": "oklch(0.87 0.01 261.81)",
"muted": "oklch(0.28 0.04 260.33)",
"muted-foreground": "oklch(0.71 0.02 261.33)",
"accent": "oklch(0.37 0.03 259.73)",
"accent-foreground": "oklch(0.87 0.01 261.81)",
"destructive": "oklch(0.64 0.21 25.39)",
"border": "oklch(0.45 0.03 257.68)",
"input": "oklch(0.45 0.03 257.68)",
"ring": "oklch(0.68 0.16 276.93)",
"chart-1": "oklch(0.68 0.16 276.93)",
"chart-2": "oklch(0.59 0.20 277.06)",
"chart-3": "oklch(0.51 0.23 276.97)",
"chart-4": "oklch(0.46 0.21 277.06)",
"chart-5": "oklch(0.40 0.18 277.16)",
"sidebar": "oklch(0.28 0.04 260.33)",
"sidebar-foreground": "oklch(0.93 0.01 256.71)",
"sidebar-primary": "oklch(0.68 0.16 276.93)",
"sidebar-primary-foreground": "oklch(0.21 0.04 264.04)",
"sidebar-accent": "oklch(0.37 0.03 259.73)",
"sidebar-accent-foreground": "oklch(0.87 0.01 261.81)",
"sidebar-border": "oklch(0.45 0.03 257.68)",
"sidebar-ring": "oklch(0.68 0.16 276.93)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "corporate",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "Inter, sans-serif",
"font-mono": "IBM Plex Mono, monospace",
"font-serif": "Source Serif 4, serif",
"radius": "0.375rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.98 0 0)",
"foreground": "oklch(0.21 0.03 263.61)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0.21 0.03 263.61)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.21 0.03 263.61)",
"primary": "oklch(0.48 0.20 260.47)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.97 0 0)",
"secondary-foreground": "oklch(0.37 0.03 259.73)",
"muted": "oklch(0.97 0 0)",
"muted-foreground": "oklch(0.55 0.02 264.41)",
"accent": "oklch(0.95 0.02 260.18)",
"accent-foreground": "oklch(0.48 0.20 260.47)",
"destructive": "oklch(0.58 0.22 27.29)",
"border": "oklch(0.93 0.01 261.82)",
"input": "oklch(0.93 0.01 261.82)",
"ring": "oklch(0.48 0.20 260.47)",
"chart-1": "oklch(0.48 0.20 260.47)",
"chart-2": "oklch(0.56 0.24 260.92)",
"chart-3": "oklch(0.40 0.16 259.61)",
"chart-4": "oklch(0.43 0.16 259.82)",
"chart-5": "oklch(0.29 0.07 261.20)",
"radius": "0.375rem",
"sidebar": "oklch(0.97 0 0)",
"sidebar-foreground": "oklch(0.21 0.03 263.61)",
"sidebar-primary": "oklch(0.48 0.20 260.47)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.95 0.02 260.18)",
"sidebar-accent-foreground": "oklch(0.48 0.20 260.47)",
"sidebar-border": "oklch(0.93 0.01 261.82)",
"sidebar-ring": "oklch(0.48 0.20 260.47)",
"font-sans": "Inter, sans-serif",
"font-serif": "Source Serif 4, serif",
"font-mono": "IBM Plex Mono, monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"spacing": "0.25rem",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.26 0.03 262.67)",
"foreground": "oklch(0.93 0.01 261.82)",
"card": "oklch(0.30 0.03 260.51)",
"card-foreground": "oklch(0.93 0.01 261.82)",
"popover": "oklch(0.30 0.03 260.51)",
"popover-foreground": "oklch(0.93 0.01 261.82)",
"primary": "oklch(0.56 0.24 260.92)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.35 0.04 261.40)",
"secondary-foreground": "oklch(0.93 0.01 261.82)",
"muted": "oklch(0.30 0.03 260.51)",
"muted-foreground": "oklch(0.71 0.02 261.33)",
"accent": "oklch(0.33 0.04 264.63)",
"accent-foreground": "oklch(0.93 0.01 261.82)",
"destructive": "oklch(0.64 0.21 25.39)",
"border": "oklch(0.35 0.04 261.40)",
"input": "oklch(0.35 0.04 261.40)",
"ring": "oklch(0.56 0.24 260.92)",
"chart-1": "oklch(0.56 0.24 260.92)",
"chart-2": "oklch(0.48 0.20 260.47)",
"chart-3": "oklch(0.69 0.17 255.59)",
"chart-4": "oklch(0.43 0.16 259.82)",
"chart-5": "oklch(0.29 0.07 261.20)",
"sidebar": "oklch(0.26 0.03 262.67)",
"sidebar-foreground": "oklch(0.93 0.01 261.82)",
"sidebar-primary": "oklch(0.56 0.24 260.92)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.33 0.04 264.63)",
"sidebar-accent-foreground": "oklch(0.93 0.01 261.82)",
"sidebar-border": "oklch(0.35 0.04 261.40)",
"sidebar-ring": "oklch(0.56 0.24 260.92)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,90 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "cyberpunk",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"cssVars": {
"theme": {
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"radius": "0.5rem"
},
"light": {
"background": "oklch(0.98 0 0)",
"foreground": "oklch(0.16 0.04 281.83)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0.16 0.04 281.83)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.16 0.04 281.83)",
"primary": "oklch(0.67 0.29 341.42)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.96 0.02 286.08)",
"secondary-foreground": "oklch(0.16 0.04 281.83)",
"muted": "oklch(0.96 0.02 286.08)",
"muted-foreground": "oklch(0.16 0.04 281.83)",
"accent": "oklch(0.89 0.17 171.26)",
"accent-foreground": "oklch(0.16 0.04 281.83)",
"destructive": "oklch(0.65 0.23 34.04)",
"border": "oklch(0.92 0.01 224.97)",
"input": "oklch(0.92 0.01 224.97)",
"ring": "oklch(0.67 0.29 341.42)",
"chart-1": "oklch(0.67 0.29 341.42)",
"chart-2": "oklch(0.55 0.29 299.10)",
"chart-3": "oklch(0.84 0.15 209.27)",
"chart-4": "oklch(0.89 0.17 171.26)",
"chart-5": "oklch(0.92 0.19 101.40)",
"radius": "0.5rem",
"sidebar": "oklch(0.96 0.02 286.08)",
"sidebar-foreground": "oklch(0.16 0.04 281.83)",
"sidebar-primary": "oklch(0.67 0.29 341.42)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.89 0.17 171.26)",
"sidebar-accent-foreground": "oklch(0.16 0.04 281.83)",
"sidebar-border": "oklch(0.92 0.01 224.97)",
"sidebar-ring": "oklch(0.67 0.29 341.42)",
"font-sans": "Outfit, sans-serif",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "Fira Code, monospace"
},
"dark": {
"background": "oklch(0.16 0.04 281.83)",
"foreground": "oklch(0.95 0.01 260.77)",
"card": "oklch(0.25 0.06 281.15)",
"card-foreground": "oklch(0.95 0.01 260.77)",
"popover": "oklch(0.25 0.06 281.15)",
"popover-foreground": "oklch(0.95 0.01 260.77)",
"primary": "oklch(0.67 0.29 341.42)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.25 0.06 281.15)",
"secondary-foreground": "oklch(0.95 0.01 260.77)",
"muted": "oklch(0.25 0.06 281.15)",
"muted-foreground": "oklch(0.62 0.05 278.12)",
"accent": "oklch(0.89 0.17 171.26)",
"accent-foreground": "oklch(0.16 0.04 281.83)",
"destructive": "oklch(0.65 0.23 34.04)",
"border": "oklch(0.33 0.08 280.79)",
"input": "oklch(0.33 0.08 280.79)",
"ring": "oklch(0.67 0.29 341.42)",
"chart-1": "oklch(0.67 0.29 341.42)",
"chart-2": "oklch(0.55 0.29 299.10)",
"chart-3": "oklch(0.84 0.15 209.27)",
"chart-4": "oklch(0.89 0.17 171.26)",
"chart-5": "oklch(0.92 0.19 101.40)",
"sidebar": "oklch(0.16 0.04 281.83)",
"sidebar-foreground": "oklch(0.95 0.01 260.77)",
"sidebar-primary": "oklch(0.67 0.29 341.42)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.89 0.17 171.26)",
"sidebar-accent-foreground": "oklch(0.16 0.04 281.83)",
"sidebar-border": "oklch(0.33 0.08 280.79)",
"sidebar-ring": "oklch(0.67 0.29 341.42)",
"radius": "0.5rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace"
}
},
"css": {}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "elegant-luxury",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "Poppins, sans-serif",
"font-mono": "IBM Plex Mono, monospace",
"font-serif": "Libre Baskerville, serif",
"radius": "0.375rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.98 0 0)",
"foreground": "oklch(0.22 0 0)",
"card": "oklch(0.98 0 0)",
"card-foreground": "oklch(0.22 0 0)",
"popover": "oklch(0.98 0 0)",
"popover-foreground": "oklch(0.22 0 0)",
"primary": "oklch(0.47 0.15 25.06)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.96 0.04 88.18)",
"secondary-foreground": "oklch(0.48 0.10 75.09)",
"muted": "oklch(0.94 0.01 48.70)",
"muted-foreground": "oklch(0.44 0.01 73.63)",
"accent": "oklch(0.96 0.06 94.84)",
"accent-foreground": "oklch(0.40 0.13 25.81)",
"destructive": "oklch(0.44 0.16 26.84)",
"border": "oklch(0.94 0.03 81.74)",
"input": "oklch(0.94 0.03 81.74)",
"ring": "oklch(0.47 0.15 25.06)",
"chart-1": "oklch(0.51 0.19 27.52)",
"chart-2": "oklch(0.47 0.15 25.06)",
"chart-3": "oklch(0.40 0.13 25.81)",
"chart-4": "oklch(0.56 0.15 49.06)",
"chart-5": "oklch(0.47 0.12 46.52)",
"radius": "0.375rem",
"sidebar": "oklch(0.94 0.01 48.70)",
"sidebar-foreground": "oklch(0.22 0 0)",
"sidebar-primary": "oklch(0.47 0.15 25.06)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.96 0.06 94.84)",
"sidebar-accent-foreground": "oklch(0.40 0.13 25.81)",
"sidebar-border": "oklch(0.94 0.03 81.74)",
"sidebar-ring": "oklch(0.47 0.15 25.06)",
"font-sans": "Poppins, sans-serif",
"font-serif": "Libre Baskerville, serif",
"font-mono": "IBM Plex Mono, monospace",
"shadow-color": "hsl(0 63% 18%)",
"shadow-opacity": "0.12",
"shadow-blur": "16px",
"shadow-spread": "-2px",
"shadow-offset-x": "1px",
"shadow-offset-y": "1px",
"spacing": "0.25rem",
"shadow-2xs": "1px 1px 16px -2px oklch(0.28 0.09 24.83 / 0.06)",
"shadow-xs": "1px 1px 16px -2px oklch(0.28 0.09 24.83 / 0.06)",
"shadow-sm": "1px 1px 16px -2px oklch(0.28 0.09 24.83 / 0.12), 1px 1px 2px -3px oklch(0.28 0.09 24.83 / 0.12)",
"shadow": "1px 1px 16px -2px oklch(0.28 0.09 24.83 / 0.12), 1px 1px 2px -3px oklch(0.28 0.09 24.83 / 0.12)",
"shadow-md": "1px 1px 16px -2px oklch(0.28 0.09 24.83 / 0.12), 1px 2px 4px -3px oklch(0.28 0.09 24.83 / 0.12)",
"shadow-lg": "1px 1px 16px -2px oklch(0.28 0.09 24.83 / 0.12), 1px 4px 6px -3px oklch(0.28 0.09 24.83 / 0.12)",
"shadow-xl": "1px 1px 16px -2px oklch(0.28 0.09 24.83 / 0.12), 1px 8px 10px -3px oklch(0.28 0.09 24.83 / 0.12)",
"shadow-2xl": "1px 1px 16px -2px oklch(0.28 0.09 24.83 / 0.30)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.22 0.01 52.96)",
"foreground": "oklch(0.97 0 0)",
"card": "oklch(0.27 0.01 39.35)",
"card-foreground": "oklch(0.97 0 0)",
"popover": "oklch(0.27 0.01 39.35)",
"popover-foreground": "oklch(0.97 0 0)",
"primary": "oklch(0.51 0.19 27.52)",
"primary-foreground": "oklch(0.98 0 0)",
"secondary": "oklch(0.47 0.12 46.52)",
"secondary-foreground": "oklch(0.96 0.06 94.84)",
"muted": "oklch(0.27 0.01 39.35)",
"muted-foreground": "oklch(0.87 0 0)",
"accent": "oklch(0.56 0.15 49.06)",
"accent-foreground": "oklch(0.96 0.06 94.84)",
"destructive": "oklch(0.64 0.21 25.39)",
"border": "oklch(0.37 0.01 73.58)",
"input": "oklch(0.37 0.01 73.58)",
"ring": "oklch(0.51 0.19 27.52)",
"chart-1": "oklch(0.71 0.17 21.96)",
"chart-2": "oklch(0.64 0.21 25.39)",
"chart-3": "oklch(0.58 0.22 27.29)",
"chart-4": "oklch(0.84 0.16 84.06)",
"chart-5": "oklch(0.77 0.16 69.82)",
"sidebar": "oklch(0.22 0.01 52.96)",
"sidebar-foreground": "oklch(0.97 0 0)",
"sidebar-primary": "oklch(0.51 0.19 27.52)",
"sidebar-primary-foreground": "oklch(0.98 0 0)",
"sidebar-accent": "oklch(0.56 0.15 49.06)",
"sidebar-accent-foreground": "oklch(0.96 0.06 94.84)",
"sidebar-border": "oklch(0.37 0.01 73.58)",
"sidebar-ring": "oklch(0.51 0.19 27.52)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "ghibli-studio",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "Nunito, sans-serif",
"font-mono": "JetBrains Mono, monospace",
"font-serif": "PT Serif, serif",
"radius": "0.625rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.91 0.05 82.78)",
"foreground": "oklch(0.41 0.08 78.86)",
"card": "oklch(0.92 0.04 84.56)",
"card-foreground": "oklch(0.41 0.08 74.04)",
"popover": "oklch(0.92 0.04 84.56)",
"popover-foreground": "oklch(0.41 0.08 74.04)",
"primary": "oklch(0.71 0.10 111.96)",
"primary-foreground": "oklch(0.98 0.01 2.18)",
"secondary": "oklch(0.88 0.05 83.32)",
"secondary-foreground": "oklch(0.51 0.08 78.21)",
"muted": "oklch(0.86 0.06 82.94)",
"muted-foreground": "oklch(0.51 0.08 74.78)",
"accent": "oklch(0.86 0.05 85.12)",
"accent-foreground": "oklch(0.26 0.02 356.72)",
"destructive": "oklch(0.63 0.24 29.21)",
"border": "oklch(0.74 0.06 79.64)",
"input": "oklch(0.74 0.06 79.64)",
"ring": "oklch(0.51 0.08 74.78)",
"chart-1": "oklch(0.66 0.19 41.68)",
"chart-2": "oklch(0.70 0.12 183.58)",
"chart-3": "oklch(0.48 0.08 211.35)",
"chart-4": "oklch(0.84 0.17 84.99)",
"chart-5": "oklch(0.74 0.17 60.02)",
"radius": "0.625rem",
"sidebar": "oklch(0.87 0.06 84.46)",
"sidebar-foreground": "oklch(0.41 0.08 78.86)",
"sidebar-primary": "oklch(0.26 0.02 356.72)",
"sidebar-primary-foreground": "oklch(0.98 0.01 2.18)",
"sidebar-accent": "oklch(0.83 0.06 84.44)",
"sidebar-accent-foreground": "oklch(0.26 0.02 356.72)",
"sidebar-border": "oklch(0.91 0 0)",
"sidebar-ring": "oklch(0.71 0 0)",
"font-sans": "Nunito, sans-serif",
"font-serif": "PT Serif, serif",
"font-mono": "JetBrains Mono, monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"spacing": "0.25rem",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.20 0.01 52.89)",
"foreground": "oklch(0.88 0.05 79.11)",
"card": "oklch(0.25 0.01 48.28)",
"card-foreground": "oklch(0.88 0.05 79.11)",
"popover": "oklch(0.25 0.01 48.28)",
"popover-foreground": "oklch(0.88 0.05 79.11)",
"primary": "oklch(0.64 0.05 114.58)",
"primary-foreground": "oklch(0.98 0.01 2.18)",
"secondary": "oklch(0.33 0.02 60.70)",
"secondary-foreground": "oklch(0.88 0.05 83.32)",
"muted": "oklch(0.27 0.01 39.35)",
"muted-foreground": "oklch(0.74 0.06 79.64)",
"accent": "oklch(0.33 0.02 60.70)",
"accent-foreground": "oklch(0.86 0.05 85.12)",
"destructive": "oklch(0.63 0.24 29.21)",
"border": "oklch(0.33 0.02 60.70)",
"input": "oklch(0.33 0.02 60.70)",
"ring": "oklch(0.64 0.05 114.58)",
"chart-1": "oklch(0.66 0.19 41.68)",
"chart-2": "oklch(0.70 0.12 183.58)",
"chart-3": "oklch(0.48 0.08 211.35)",
"chart-4": "oklch(0.84 0.17 84.99)",
"chart-5": "oklch(0.74 0.17 60.02)",
"sidebar": "oklch(0.23 0.01 60.90)",
"sidebar-foreground": "oklch(0.88 0.05 79.11)",
"sidebar-primary": "oklch(0.64 0.05 114.58)",
"sidebar-primary-foreground": "oklch(0.98 0.01 2.18)",
"sidebar-accent": "oklch(0.33 0.02 60.70)",
"sidebar-accent-foreground": "oklch(0.86 0.05 85.12)",
"sidebar-border": "oklch(0.33 0.02 60.70)",
"sidebar-ring": "oklch(0.64 0.05 114.58)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "midnight-bloom",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "Montserrat, sans-serif",
"font-mono": "Source Code Pro, monospace",
"font-serif": "Playfair Display, serif",
"radius": "0.5rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.98 0 0)",
"foreground": "oklch(0.32 0 0)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0.32 0 0)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.32 0 0)",
"primary": "oklch(0.57 0.20 283.26)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.82 0.07 249.99)",
"secondary-foreground": "oklch(0.32 0 0)",
"muted": "oklch(0.82 0.02 90.54)",
"muted-foreground": "oklch(0.54 0 0)",
"accent": "oklch(0.65 0.06 117.02)",
"accent-foreground": "oklch(1.00 0 0)",
"destructive": "oklch(0.64 0.21 25.39)",
"border": "oklch(0.87 0 0)",
"input": "oklch(0.87 0 0)",
"ring": "oklch(0.57 0.20 283.26)",
"chart-1": "oklch(0.57 0.20 283.26)",
"chart-2": "oklch(0.53 0.17 314.68)",
"chart-3": "oklch(0.34 0.18 301.34)",
"chart-4": "oklch(0.67 0.14 261.15)",
"chart-5": "oklch(0.59 0.10 245.35)",
"radius": "0.5rem",
"sidebar": "oklch(0.98 0 0)",
"sidebar-foreground": "oklch(0.32 0 0)",
"sidebar-primary": "oklch(0.57 0.20 283.26)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.65 0.06 117.02)",
"sidebar-accent-foreground": "oklch(1.00 0 0)",
"sidebar-border": "oklch(0.87 0 0)",
"sidebar-ring": "oklch(0.57 0.20 283.26)",
"font-sans": "Montserrat, sans-serif",
"font-serif": "Playfair Display, serif",
"font-mono": "Source Code Pro, monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "10px",
"shadow-spread": "-2px",
"shadow-offset-x": "0px",
"shadow-offset-y": "5px",
"spacing": "0.25rem",
"shadow-2xs": "0px 5px 10px -2px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0px 5px 10px -2px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0px 5px 10px -2px oklch(0.00 0 0 / 0.10), 0px 1px 2px -3px oklch(0.00 0 0 / 0.10)",
"shadow": "0px 5px 10px -2px oklch(0.00 0 0 / 0.10), 0px 1px 2px -3px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0px 5px 10px -2px oklch(0.00 0 0 / 0.10), 0px 2px 4px -3px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0px 5px 10px -2px oklch(0.00 0 0 / 0.10), 0px 4px 6px -3px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0px 5px 10px -2px oklch(0.00 0 0 / 0.10), 0px 8px 10px -3px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0px 5px 10px -2px oklch(0.00 0 0 / 0.25)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.23 0.01 268.25)",
"foreground": "oklch(0.92 0 0)",
"card": "oklch(0.32 0.01 229.15)",
"card-foreground": "oklch(0.92 0 0)",
"popover": "oklch(0.32 0.01 229.15)",
"popover-foreground": "oklch(0.92 0 0)",
"primary": "oklch(0.57 0.20 283.26)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.34 0.18 301.34)",
"secondary-foreground": "oklch(0.92 0 0)",
"muted": "oklch(0.39 0 0)",
"muted-foreground": "oklch(0.72 0 0)",
"accent": "oklch(0.67 0.14 261.15)",
"accent-foreground": "oklch(0.92 0 0)",
"destructive": "oklch(0.64 0.21 25.39)",
"border": "oklch(0.39 0 0)",
"input": "oklch(0.39 0 0)",
"ring": "oklch(0.57 0.20 283.26)",
"chart-1": "oklch(0.57 0.20 283.26)",
"chart-2": "oklch(0.53 0.17 314.68)",
"chart-3": "oklch(0.34 0.18 301.34)",
"chart-4": "oklch(0.67 0.14 261.15)",
"chart-5": "oklch(0.59 0.10 245.35)",
"sidebar": "oklch(0.23 0.01 268.25)",
"sidebar-foreground": "oklch(0.92 0 0)",
"sidebar-primary": "oklch(0.57 0.20 283.26)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.67 0.14 261.15)",
"sidebar-accent-foreground": "oklch(0.92 0 0)",
"sidebar-border": "oklch(0.39 0 0)",
"sidebar-ring": "oklch(0.57 0.20 283.26)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "modern-minimal",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-mono": "JetBrains Mono, monospace",
"font-serif": "Source Serif 4, serif",
"radius": "0.375rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(1.00 0 0)",
"foreground": "oklch(0.32 0 0)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0.32 0 0)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.32 0 0)",
"primary": "oklch(0.62 0.19 259.76)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.97 0 0)",
"secondary-foreground": "oklch(0.45 0.03 257.68)",
"muted": "oklch(0.98 0 0)",
"muted-foreground": "oklch(0.55 0.02 264.41)",
"accent": "oklch(0.95 0.03 233.56)",
"accent-foreground": "oklch(0.38 0.14 265.59)",
"destructive": "oklch(0.64 0.21 25.39)",
"border": "oklch(0.93 0.01 261.82)",
"input": "oklch(0.93 0.01 261.82)",
"ring": "oklch(0.62 0.19 259.76)",
"chart-1": "oklch(0.62 0.19 259.76)",
"chart-2": "oklch(0.55 0.22 262.96)",
"chart-3": "oklch(0.49 0.22 264.43)",
"chart-4": "oklch(0.42 0.18 265.55)",
"chart-5": "oklch(0.38 0.14 265.59)",
"radius": "0.375rem",
"sidebar": "oklch(0.98 0 0)",
"sidebar-foreground": "oklch(0.14 0 0)",
"sidebar-primary": "oklch(0.20 0 0)",
"sidebar-primary-foreground": "oklch(0.98 0 0)",
"sidebar-accent": "oklch(0.97 0 0)",
"sidebar-accent-foreground": "oklch(0.20 0 0)",
"sidebar-border": "oklch(0.92 0 0)",
"sidebar-ring": "oklch(0.71 0 0)",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "Source Serif 4, serif",
"font-mono": "JetBrains Mono, monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"spacing": "0.25rem",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.20 0 0)",
"foreground": "oklch(0.92 0 0)",
"card": "oklch(0.27 0 0)",
"card-foreground": "oklch(0.92 0 0)",
"popover": "oklch(0.27 0 0)",
"popover-foreground": "oklch(0.92 0 0)",
"primary": "oklch(0.62 0.19 259.76)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.27 0 0)",
"secondary-foreground": "oklch(0.92 0 0)",
"muted": "oklch(0.27 0 0)",
"muted-foreground": "oklch(0.72 0 0)",
"accent": "oklch(0.38 0.14 265.59)",
"accent-foreground": "oklch(0.88 0.06 254.63)",
"destructive": "oklch(0.64 0.21 25.39)",
"border": "oklch(0.37 0 0)",
"input": "oklch(0.37 0 0)",
"ring": "oklch(0.62 0.19 259.76)",
"chart-1": "oklch(0.71 0.14 254.69)",
"chart-2": "oklch(0.62 0.19 259.76)",
"chart-3": "oklch(0.55 0.22 262.96)",
"chart-4": "oklch(0.49 0.22 264.43)",
"chart-5": "oklch(0.42 0.18 265.55)",
"sidebar": "oklch(0.21 0.01 285.56)",
"sidebar-foreground": "oklch(0.99 0 0)",
"sidebar-primary": "oklch(0.49 0.24 264.41)",
"sidebar-primary-foreground": "oklch(0.99 0 0)",
"sidebar-accent": "oklch(0.27 0.01 285.81)",
"sidebar-accent-foreground": "oklch(0.99 0 0)",
"sidebar-border": "oklch(1.00 0 0 / 10%)",
"sidebar-ring": "oklch(0.55 0.02 285.76)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

133
public/r/themes/nature.json Normal file
View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "nature",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "Montserrat, sans-serif",
"font-mono": "Source Code Pro, monospace",
"font-serif": "Merriweather, serif",
"radius": "0.5rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.97 0.01 81.76)",
"foreground": "oklch(0.30 0.04 29.20)",
"card": "oklch(0.97 0.01 81.76)",
"card-foreground": "oklch(0.30 0.04 29.20)",
"popover": "oklch(0.97 0.01 81.76)",
"popover-foreground": "oklch(0.30 0.04 29.20)",
"primary": "oklch(0.52 0.13 144.33)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.96 0.02 147.54)",
"secondary-foreground": "oklch(0.43 0.12 144.33)",
"muted": "oklch(0.94 0.01 72.65)",
"muted-foreground": "oklch(0.45 0.05 38.69)",
"accent": "oklch(0.90 0.05 146.01)",
"accent-foreground": "oklch(0.43 0.12 144.33)",
"destructive": "oklch(0.54 0.19 26.90)",
"border": "oklch(0.88 0.02 77.29)",
"input": "oklch(0.88 0.02 77.29)",
"ring": "oklch(0.52 0.13 144.33)",
"chart-1": "oklch(0.67 0.16 144.06)",
"chart-2": "oklch(0.58 0.14 144.14)",
"chart-3": "oklch(0.52 0.13 144.33)",
"chart-4": "oklch(0.43 0.12 144.33)",
"chart-5": "oklch(0.22 0.05 145.19)",
"radius": "0.5rem",
"sidebar": "oklch(0.94 0.01 72.65)",
"sidebar-foreground": "oklch(0.30 0.04 29.20)",
"sidebar-primary": "oklch(0.52 0.13 144.33)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.90 0.05 146.01)",
"sidebar-accent-foreground": "oklch(0.43 0.12 144.33)",
"sidebar-border": "oklch(0.88 0.02 77.29)",
"sidebar-ring": "oklch(0.52 0.13 144.33)",
"font-sans": "Montserrat, sans-serif",
"font-serif": "Merriweather, serif",
"font-mono": "Source Code Pro, monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"spacing": "0.25rem",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.27 0.03 150.18)",
"foreground": "oklch(0.94 0.01 72.65)",
"card": "oklch(0.33 0.03 146.53)",
"card-foreground": "oklch(0.94 0.01 72.65)",
"popover": "oklch(0.33 0.03 146.53)",
"popover-foreground": "oklch(0.94 0.01 72.65)",
"primary": "oklch(0.67 0.16 144.06)",
"primary-foreground": "oklch(0.22 0.05 145.19)",
"secondary": "oklch(0.39 0.03 143.09)",
"secondary-foreground": "oklch(0.90 0.02 142.94)",
"muted": "oklch(0.33 0.03 146.53)",
"muted-foreground": "oklch(0.86 0.02 77.29)",
"accent": "oklch(0.58 0.14 144.14)",
"accent-foreground": "oklch(0.94 0.01 72.65)",
"destructive": "oklch(0.54 0.19 26.90)",
"border": "oklch(0.39 0.03 143.09)",
"input": "oklch(0.39 0.03 143.09)",
"ring": "oklch(0.67 0.16 144.06)",
"chart-1": "oklch(0.77 0.12 145.23)",
"chart-2": "oklch(0.72 0.14 144.92)",
"chart-3": "oklch(0.67 0.16 144.06)",
"chart-4": "oklch(0.63 0.15 144.32)",
"chart-5": "oklch(0.58 0.14 144.14)",
"sidebar": "oklch(0.27 0.03 150.18)",
"sidebar-foreground": "oklch(0.94 0.01 72.65)",
"sidebar-primary": "oklch(0.67 0.16 144.06)",
"sidebar-primary-foreground": "oklch(0.22 0.05 145.19)",
"sidebar-accent": "oklch(0.58 0.14 144.14)",
"sidebar-accent-foreground": "oklch(0.94 0.01 72.65)",
"sidebar-border": "oklch(0.39 0.03 143.09)",
"sidebar-ring": "oklch(0.67 0.16 144.06)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "neo-brutalism",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "DM Sans, sans-serif",
"font-mono": "Space Mono, monospace",
"font-serif": "ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"radius": "0px",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(1.00 0 0)",
"foreground": "oklch(0 0 0)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0 0 0)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0 0 0)",
"primary": "oklch(0.65 0.24 26.92)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.97 0.21 109.74)",
"secondary-foreground": "oklch(0 0 0)",
"muted": "oklch(0.96 0 0)",
"muted-foreground": "oklch(0.32 0 0)",
"accent": "oklch(0.56 0.24 260.83)",
"accent-foreground": "oklch(1.00 0 0)",
"destructive": "oklch(0 0 0)",
"border": "oklch(0 0 0)",
"input": "oklch(0 0 0)",
"ring": "oklch(0.65 0.24 26.92)",
"chart-1": "oklch(0.65 0.24 26.92)",
"chart-2": "oklch(0.97 0.21 109.74)",
"chart-3": "oklch(0.56 0.24 260.83)",
"chart-4": "oklch(0.73 0.25 142.50)",
"chart-5": "oklch(0.59 0.27 328.36)",
"radius": "0px",
"sidebar": "oklch(0.96 0 0)",
"sidebar-foreground": "oklch(0 0 0)",
"sidebar-primary": "oklch(0.65 0.24 26.92)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.56 0.24 260.83)",
"sidebar-accent-foreground": "oklch(1.00 0 0)",
"sidebar-border": "oklch(0 0 0)",
"sidebar-ring": "oklch(0.65 0.24 26.92)",
"font-sans": "DM Sans, sans-serif",
"font-serif": "ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "Space Mono, monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "1",
"shadow-blur": "0px",
"shadow-spread": "0px",
"shadow-offset-x": "4px",
"shadow-offset-y": "4px",
"spacing": "0.25rem",
"shadow-2xs": "4px 4px 0px 0px oklch(0.00 0 0 / 0.50)",
"shadow-xs": "4px 4px 0px 0px oklch(0.00 0 0 / 0.50)",
"shadow-sm": "4px 4px 0px 0px oklch(0.00 0 0 / 1.00), 4px 1px 2px -1px oklch(0.00 0 0 / 1.00)",
"shadow": "4px 4px 0px 0px oklch(0.00 0 0 / 1.00), 4px 1px 2px -1px oklch(0.00 0 0 / 1.00)",
"shadow-md": "4px 4px 0px 0px oklch(0.00 0 0 / 1.00), 4px 2px 4px -1px oklch(0.00 0 0 / 1.00)",
"shadow-lg": "4px 4px 0px 0px oklch(0.00 0 0 / 1.00), 4px 4px 6px -1px oklch(0.00 0 0 / 1.00)",
"shadow-xl": "4px 4px 0px 0px oklch(0.00 0 0 / 1.00), 4px 8px 10px -1px oklch(0.00 0 0 / 1.00)",
"shadow-2xl": "4px 4px 0px 0px oklch(0.00 0 0 / 2.50)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0 0 0)",
"foreground": "oklch(1.00 0 0)",
"card": "oklch(0.32 0 0)",
"card-foreground": "oklch(1.00 0 0)",
"popover": "oklch(0.32 0 0)",
"popover-foreground": "oklch(1.00 0 0)",
"primary": "oklch(0.70 0.19 23.04)",
"primary-foreground": "oklch(0 0 0)",
"secondary": "oklch(0.97 0.20 109.61)",
"secondary-foreground": "oklch(0 0 0)",
"muted": "oklch(0.32 0 0)",
"muted-foreground": "oklch(0.85 0 0)",
"accent": "oklch(0.68 0.18 251.63)",
"accent-foreground": "oklch(0 0 0)",
"destructive": "oklch(1.00 0 0)",
"border": "oklch(1.00 0 0)",
"input": "oklch(1.00 0 0)",
"ring": "oklch(0.70 0.19 23.04)",
"chart-1": "oklch(0.70 0.19 23.04)",
"chart-2": "oklch(0.97 0.20 109.61)",
"chart-3": "oklch(0.68 0.18 251.63)",
"chart-4": "oklch(0.74 0.23 142.87)",
"chart-5": "oklch(0.61 0.25 328.13)",
"sidebar": "oklch(0 0 0)",
"sidebar-foreground": "oklch(1.00 0 0)",
"sidebar-primary": "oklch(0.70 0.19 23.04)",
"sidebar-primary-foreground": "oklch(0 0 0)",
"sidebar-accent": "oklch(0.68 0.18 251.63)",
"sidebar-accent-foreground": "oklch(0 0 0)",
"sidebar-border": "oklch(1.00 0 0)",
"sidebar-ring": "oklch(0.70 0.19 23.04)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,90 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "northern-lights",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"cssVars": {
"theme": {
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"radius": "0.5rem"
},
"light": {
"background": "oklch(0.98 0 0)",
"foreground": "oklch(0.32 0 0)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0.32 0 0)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.32 0 0)",
"primary": "oklch(0.65 0.15 150.30)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.67 0.14 261.34)",
"secondary-foreground": "oklch(1.00 0 0)",
"muted": "oklch(0.88 0.03 98.07)",
"muted-foreground": "oklch(0.54 0 0)",
"accent": "oklch(0.83 0.11 211.95)",
"accent-foreground": "oklch(0.32 0 0)",
"destructive": "oklch(0.64 0.21 25.33)",
"border": "oklch(0.87 0 0)",
"input": "oklch(0.87 0 0)",
"ring": "oklch(0.65 0.15 150.30)",
"chart-1": "oklch(0.65 0.15 150.30)",
"chart-2": "oklch(0.67 0.14 261.34)",
"chart-3": "oklch(0.83 0.11 211.95)",
"chart-4": "oklch(0.59 0.10 245.73)",
"chart-5": "oklch(0.59 0.16 148.24)",
"radius": "0.5rem",
"sidebar": "oklch(0.98 0 0)",
"sidebar-foreground": "oklch(0.32 0 0)",
"sidebar-primary": "oklch(0.65 0.15 150.30)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.83 0.11 211.95)",
"sidebar-accent-foreground": "oklch(0.32 0 0)",
"sidebar-border": "oklch(0.87 0 0)",
"sidebar-ring": "oklch(0.65 0.15 150.30)",
"font-sans": "Plus Jakarta Sans, sans-serif",
"font-serif": "Source Serif 4, serif",
"font-mono": "JetBrains Mono, monospace"
},
"dark": {
"background": "oklch(0.23 0.01 264.30)",
"foreground": "oklch(0.92 0 0)",
"card": "oklch(0.32 0.01 223.62)",
"card-foreground": "oklch(0.92 0 0)",
"popover": "oklch(0.32 0.01 223.62)",
"popover-foreground": "oklch(0.92 0 0)",
"primary": "oklch(0.65 0.15 150.30)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.59 0.10 245.73)",
"secondary-foreground": "oklch(0.92 0 0)",
"muted": "oklch(0.39 0 0)",
"muted-foreground": "oklch(0.72 0 0)",
"accent": "oklch(0.67 0.14 261.34)",
"accent-foreground": "oklch(0.92 0 0)",
"destructive": "oklch(0.64 0.21 25.33)",
"border": "oklch(0.39 0 0)",
"input": "oklch(0.39 0 0)",
"ring": "oklch(0.65 0.15 150.30)",
"chart-1": "oklch(0.65 0.15 150.30)",
"chart-2": "oklch(0.59 0.10 245.73)",
"chart-3": "oklch(0.67 0.14 261.34)",
"chart-4": "oklch(0.83 0.11 211.95)",
"chart-5": "oklch(0.59 0.16 148.24)",
"sidebar": "oklch(0.23 0.01 264.30)",
"sidebar-foreground": "oklch(0.92 0 0)",
"sidebar-primary": "oklch(0.65 0.15 150.30)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.67 0.14 261.34)",
"sidebar-accent-foreground": "oklch(0.92 0 0)",
"sidebar-border": "oklch(0.39 0 0)",
"sidebar-ring": "oklch(0.65 0.15 150.30)",
"radius": "0.5rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace"
}
},
"css": {}
}

View file

@ -0,0 +1,90 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "ocean-breeze",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"cssVars": {
"theme": {
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"radius": "0.5rem"
},
"light": {
"background": "oklch(0.98 0.01 244.22)",
"foreground": "oklch(0.37 0.03 259.73)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0.37 0.03 259.73)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.37 0.03 259.73)",
"primary": "oklch(0.72 0.19 149.58)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.95 0.02 236.80)",
"secondary-foreground": "oklch(0.45 0.03 256.80)",
"muted": "oklch(0.97 0.00 264.70)",
"muted-foreground": "oklch(0.55 0.02 264.37)",
"accent": "oklch(0.95 0.05 163.01)",
"accent-foreground": "oklch(0.37 0.03 259.73)",
"destructive": "oklch(0.64 0.21 25.33)",
"border": "oklch(0.93 0.01 264.60)",
"input": "oklch(0.93 0.01 264.60)",
"ring": "oklch(0.72 0.19 149.58)",
"chart-1": "oklch(0.72 0.19 149.58)",
"chart-2": "oklch(0.70 0.15 162.47)",
"chart-3": "oklch(0.60 0.13 163.22)",
"chart-4": "oklch(0.51 0.10 165.61)",
"chart-5": "oklch(0.43 0.09 166.91)",
"radius": "0.5rem",
"sidebar": "oklch(0.95 0.02 236.80)",
"sidebar-foreground": "oklch(0.37 0.03 259.73)",
"sidebar-primary": "oklch(0.72 0.19 149.58)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.95 0.05 163.01)",
"sidebar-accent-foreground": "oklch(0.37 0.03 259.73)",
"sidebar-border": "oklch(0.93 0.01 264.60)",
"sidebar-ring": "oklch(0.72 0.19 149.58)",
"font-sans": "DM Sans, sans-serif",
"font-serif": "Lora, serif",
"font-mono": "IBM Plex Mono, monospace"
},
"dark": {
"background": "oklch(0.21 0.04 265.76)",
"foreground": "oklch(0.87 0.01 258.36)",
"card": "oklch(0.28 0.04 260.03)",
"card-foreground": "oklch(0.87 0.01 258.36)",
"popover": "oklch(0.28 0.04 260.03)",
"popover-foreground": "oklch(0.87 0.01 258.36)",
"primary": "oklch(0.77 0.15 163.22)",
"primary-foreground": "oklch(0.21 0.04 265.76)",
"secondary": "oklch(0.34 0.03 260.91)",
"secondary-foreground": "oklch(0.71 0.01 286.14)",
"muted": "oklch(0.28 0.04 260.03)",
"muted-foreground": "oklch(0.55 0.02 264.37)",
"accent": "oklch(0.37 0.03 259.73)",
"accent-foreground": "oklch(0.71 0.01 286.14)",
"destructive": "oklch(0.64 0.21 25.33)",
"border": "oklch(0.45 0.03 256.80)",
"input": "oklch(0.45 0.03 256.80)",
"ring": "oklch(0.77 0.15 163.22)",
"chart-1": "oklch(0.77 0.15 163.22)",
"chart-2": "oklch(0.78 0.13 181.90)",
"chart-3": "oklch(0.72 0.19 149.58)",
"chart-4": "oklch(0.70 0.15 162.47)",
"chart-5": "oklch(0.60 0.13 163.22)",
"sidebar": "oklch(0.28 0.04 260.03)",
"sidebar-foreground": "oklch(0.87 0.01 258.36)",
"sidebar-primary": "oklch(0.77 0.15 163.22)",
"sidebar-primary-foreground": "oklch(0.21 0.04 265.76)",
"sidebar-accent": "oklch(0.37 0.03 259.73)",
"sidebar-accent-foreground": "oklch(0.71 0.01 286.14)",
"sidebar-border": "oklch(0.45 0.03 256.80)",
"sidebar-ring": "oklch(0.77 0.15 163.22)",
"radius": "0.5rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace"
}
},
"css": {}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "pastel-dreams",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "Open Sans, sans-serif",
"font-mono": "IBM Plex Mono, monospace",
"font-serif": "Source Serif 4, serif",
"radius": "1.5rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.97 0.01 316.68)",
"foreground": "oklch(0.37 0.03 259.73)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0.37 0.03 259.73)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.37 0.03 259.73)",
"primary": "oklch(0.71 0.16 293.40)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.91 0.05 306.07)",
"secondary-foreground": "oklch(0.45 0.03 257.68)",
"muted": "oklch(0.95 0.03 307.19)",
"muted-foreground": "oklch(0.55 0.02 264.41)",
"accent": "oklch(0.94 0.03 322.47)",
"accent-foreground": "oklch(0.37 0.03 259.73)",
"destructive": "oklch(0.81 0.10 19.47)",
"border": "oklch(0.91 0.05 306.07)",
"input": "oklch(0.91 0.05 306.07)",
"ring": "oklch(0.71 0.16 293.40)",
"chart-1": "oklch(0.71 0.16 293.40)",
"chart-2": "oklch(0.61 0.22 292.63)",
"chart-3": "oklch(0.54 0.25 293.03)",
"chart-4": "oklch(0.49 0.24 292.70)",
"chart-5": "oklch(0.43 0.21 292.63)",
"radius": "1.5rem",
"sidebar": "oklch(0.91 0.05 306.07)",
"sidebar-foreground": "oklch(0.37 0.03 259.73)",
"sidebar-primary": "oklch(0.71 0.16 293.40)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.94 0.03 322.47)",
"sidebar-accent-foreground": "oklch(0.37 0.03 259.73)",
"sidebar-border": "oklch(0.91 0.05 306.07)",
"sidebar-ring": "oklch(0.71 0.16 293.40)",
"font-sans": "Open Sans, sans-serif",
"font-serif": "Source Serif 4, serif",
"font-mono": "IBM Plex Mono, monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.08",
"shadow-blur": "16px",
"shadow-spread": "-4px",
"shadow-offset-x": "0px",
"shadow-offset-y": "8px",
"spacing": "0.25rem",
"shadow-2xs": "0px 8px 16px -4px oklch(0.00 0 0 / 0.04)",
"shadow-xs": "0px 8px 16px -4px oklch(0.00 0 0 / 0.04)",
"shadow-sm": "0px 8px 16px -4px oklch(0.00 0 0 / 0.08), 0px 1px 2px -5px oklch(0.00 0 0 / 0.08)",
"shadow": "0px 8px 16px -4px oklch(0.00 0 0 / 0.08), 0px 1px 2px -5px oklch(0.00 0 0 / 0.08)",
"shadow-md": "0px 8px 16px -4px oklch(0.00 0 0 / 0.08), 0px 2px 4px -5px oklch(0.00 0 0 / 0.08)",
"shadow-lg": "0px 8px 16px -4px oklch(0.00 0 0 / 0.08), 0px 4px 6px -5px oklch(0.00 0 0 / 0.08)",
"shadow-xl": "0px 8px 16px -4px oklch(0.00 0 0 / 0.08), 0px 8px 10px -5px oklch(0.00 0 0 / 0.08)",
"shadow-2xl": "0px 8px 16px -4px oklch(0.00 0 0 / 0.20)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.22 0.01 52.96)",
"foreground": "oklch(0.93 0.03 273.66)",
"card": "oklch(0.28 0.03 307.25)",
"card-foreground": "oklch(0.93 0.03 273.66)",
"popover": "oklch(0.28 0.03 307.25)",
"popover-foreground": "oklch(0.93 0.03 273.66)",
"primary": "oklch(0.79 0.12 295.97)",
"primary-foreground": "oklch(0.22 0.01 52.96)",
"secondary": "oklch(0.34 0.04 309.13)",
"secondary-foreground": "oklch(0.87 0.01 261.81)",
"muted": "oklch(0.28 0.03 307.25)",
"muted-foreground": "oklch(0.71 0.02 261.33)",
"accent": "oklch(0.39 0.05 304.68)",
"accent-foreground": "oklch(0.87 0.01 261.81)",
"destructive": "oklch(0.81 0.10 19.47)",
"border": "oklch(0.34 0.04 309.13)",
"input": "oklch(0.34 0.04 309.13)",
"ring": "oklch(0.79 0.12 295.97)",
"chart-1": "oklch(0.79 0.12 295.97)",
"chart-2": "oklch(0.71 0.16 293.40)",
"chart-3": "oklch(0.61 0.22 292.63)",
"chart-4": "oklch(0.54 0.25 293.03)",
"chart-5": "oklch(0.49 0.24 292.70)",
"sidebar": "oklch(0.34 0.04 309.13)",
"sidebar-foreground": "oklch(0.93 0.03 273.66)",
"sidebar-primary": "oklch(0.79 0.12 295.97)",
"sidebar-primary-foreground": "oklch(0.22 0.01 52.96)",
"sidebar-accent": "oklch(0.39 0.05 304.68)",
"sidebar-accent-foreground": "oklch(0.87 0.01 261.81)",
"sidebar-border": "oklch(0.34 0.04 309.13)",
"sidebar-ring": "oklch(0.79 0.12 295.97)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "perplexity",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "Inter, sans-serif",
"font-mono": "Roboto Mono, monospace",
"font-serif": "Lora, serif",
"radius": "0.5rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.95 0.01 196.81)",
"foreground": "oklch(0.38 0.06 211.49)",
"card": "oklch(0.97 0.01 196.81)",
"card-foreground": "oklch(0.38 0.06 211.49)",
"popover": "oklch(0.97 0.01 196.81)",
"popover-foreground": "oklch(0.38 0.06 211.49)",
"primary": "oklch(0.72 0.12 210.36)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.97 0.01 247.91)",
"secondary-foreground": "oklch(0.14 0 0)",
"muted": "oklch(0.97 0.01 247.91)",
"muted-foreground": "oklch(0.55 0.04 256.40)",
"accent": "oklch(0.96 0.02 204.34)",
"accent-foreground": "oklch(0.57 0.10 213.73)",
"destructive": "oklch(0.64 0.21 25.39)",
"border": "oklch(0.93 0.01 256.71)",
"input": "oklch(0.93 0.01 256.71)",
"ring": "oklch(0.72 0.12 210.36)",
"chart-1": "oklch(0.72 0.12 210.36)",
"chart-2": "oklch(0.57 0.10 213.73)",
"chart-3": "oklch(0.79 0.12 209.45)",
"chart-4": "oklch(0.76 0.11 208.70)",
"chart-5": "oklch(0.83 0.10 208.33)",
"radius": "0.5rem",
"sidebar": "oklch(0.98 0 0)",
"sidebar-foreground": "oklch(0.14 0 0)",
"sidebar-primary": "oklch(0.72 0.12 210.36)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.96 0.02 204.34)",
"sidebar-accent-foreground": "oklch(0.57 0.10 213.73)",
"sidebar-border": "oklch(0.93 0.01 256.71)",
"sidebar-ring": "oklch(0.72 0.12 210.36)",
"font-sans": "Inter, sans-serif",
"font-serif": "Lora, serif",
"font-mono": "Roboto Mono, monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"spacing": "0.25rem",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.21 0.02 226.02)",
"foreground": "oklch(0.85 0.13 194.97)",
"card": "oklch(0.23 0.03 218.18)",
"card-foreground": "oklch(0.85 0.13 194.97)",
"popover": "oklch(0.23 0.03 218.18)",
"popover-foreground": "oklch(0.85 0.13 194.97)",
"primary": "oklch(0.72 0.12 210.36)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.27 0.01 285.81)",
"secondary-foreground": "oklch(0.97 0 0)",
"muted": "oklch(0.24 0 0)",
"muted-foreground": "oklch(0.71 0.01 286.23)",
"accent": "oklch(0.24 0 0)",
"accent-foreground": "oklch(0.97 0 0)",
"destructive": "oklch(0.64 0.21 25.39)",
"border": "oklch(0.29 0 0)",
"input": "oklch(0.29 0 0)",
"ring": "oklch(0.72 0.12 210.36)",
"chart-1": "oklch(0.72 0.12 210.36)",
"chart-2": "oklch(0.79 0.12 209.45)",
"chart-3": "oklch(0.76 0.11 208.70)",
"chart-4": "oklch(0.83 0.10 208.33)",
"chart-5": "oklch(0.57 0.10 213.73)",
"sidebar": "oklch(0.19 0 0)",
"sidebar-foreground": "oklch(0.97 0 0)",
"sidebar-primary": "oklch(0.72 0.12 210.36)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.24 0 0)",
"sidebar-accent-foreground": "oklch(0.97 0 0)",
"sidebar-border": "oklch(0.29 0 0)",
"sidebar-ring": "oklch(0.72 0.12 210.36)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,90 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "retro-arcade",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"cssVars": {
"theme": {
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"radius": "0.25rem"
},
"light": {
"background": "oklch(0.97 0.03 90.07)",
"foreground": "oklch(0.31 0.05 219.64)",
"card": "oklch(0.93 0.03 92.37)",
"card-foreground": "oklch(0.31 0.05 219.64)",
"popover": "oklch(0.93 0.03 92.37)",
"popover-foreground": "oklch(0.31 0.05 219.64)",
"primary": "oklch(0.59 0.20 355.90)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.64 0.10 187.37)",
"secondary-foreground": "oklch(1.00 0 0)",
"muted": "oklch(0.70 0.02 196.71)",
"muted-foreground": "oklch(0.31 0.05 219.64)",
"accent": "oklch(0.58 0.17 39.50)",
"accent-foreground": "oklch(1.00 0 0)",
"destructive": "oklch(0.59 0.21 27.12)",
"border": "oklch(0.65 0.02 205.20)",
"input": "oklch(0.65 0.02 205.20)",
"ring": "oklch(0.59 0.20 355.90)",
"chart-1": "oklch(0.61 0.14 244.92)",
"chart-2": "oklch(0.64 0.10 187.37)",
"chart-3": "oklch(0.59 0.20 355.90)",
"chart-4": "oklch(0.58 0.17 39.50)",
"chart-5": "oklch(0.59 0.21 27.12)",
"radius": "0.25rem",
"sidebar": "oklch(0.97 0.03 90.07)",
"sidebar-foreground": "oklch(0.31 0.05 219.64)",
"sidebar-primary": "oklch(0.59 0.20 355.90)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.64 0.10 187.37)",
"sidebar-accent-foreground": "oklch(1.00 0 0)",
"sidebar-border": "oklch(0.65 0.02 205.20)",
"sidebar-ring": "oklch(0.59 0.20 355.90)",
"font-sans": "Outfit, sans-serif",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "Space Mono, monospace"
},
"dark": {
"background": "oklch(0.27 0.05 219.80)",
"foreground": "oklch(0.70 0.02 196.71)",
"card": "oklch(0.31 0.05 219.64)",
"card-foreground": "oklch(0.70 0.02 196.71)",
"popover": "oklch(0.31 0.05 219.64)",
"popover-foreground": "oklch(0.70 0.02 196.71)",
"primary": "oklch(0.59 0.20 355.90)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.64 0.10 187.37)",
"secondary-foreground": "oklch(1.00 0 0)",
"muted": "oklch(0.52 0.03 219.11)",
"muted-foreground": "oklch(0.70 0.02 196.71)",
"accent": "oklch(0.58 0.17 39.50)",
"accent-foreground": "oklch(1.00 0 0)",
"destructive": "oklch(0.59 0.21 27.12)",
"border": "oklch(0.52 0.03 219.11)",
"input": "oklch(0.52 0.03 219.11)",
"ring": "oklch(0.59 0.20 355.90)",
"chart-1": "oklch(0.61 0.14 244.92)",
"chart-2": "oklch(0.64 0.10 187.37)",
"chart-3": "oklch(0.59 0.20 355.90)",
"chart-4": "oklch(0.58 0.17 39.50)",
"chart-5": "oklch(0.59 0.21 27.12)",
"sidebar": "oklch(0.27 0.05 219.80)",
"sidebar-foreground": "oklch(0.70 0.02 196.71)",
"sidebar-primary": "oklch(0.59 0.20 355.90)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.64 0.10 187.37)",
"sidebar-accent-foreground": "oklch(1.00 0 0)",
"sidebar-border": "oklch(0.52 0.03 219.11)",
"sidebar-ring": "oklch(0.59 0.20 355.90)",
"radius": "0.25rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace"
}
},
"css": {}
}

133
public/r/themes/slack.json Normal file
View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "slack",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "Lato, sans-serif",
"font-mono": "Roboto Mono, monospace",
"font-serif": "Merriweather, serif",
"radius": "0.5rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(1.00 0 0)",
"foreground": "oklch(0.23 0 0)",
"card": "oklch(0.98 0 0)",
"card-foreground": "oklch(0.23 0 0)",
"popover": "oklch(0.98 0 0)",
"popover-foreground": "oklch(0.23 0 0)",
"primary": "oklch(0.37 0.14 323.40)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.96 0.01 311.36)",
"secondary-foreground": "oklch(0.31 0.11 327.10)",
"muted": "oklch(0.97 0 0)",
"muted-foreground": "oklch(0.49 0 0)",
"accent": "oklch(0.88 0.02 323.34)",
"accent-foreground": "oklch(0.31 0.11 327.10)",
"destructive": "oklch(0.59 0.22 11.39)",
"border": "oklch(0.91 0 0)",
"input": "oklch(0.91 0 0)",
"ring": "oklch(0.37 0.14 323.40)",
"chart-1": "oklch(0.31 0.11 327.10)",
"chart-2": "oklch(0.37 0.14 323.40)",
"chart-3": "oklch(0.59 0.22 11.39)",
"chart-4": "oklch(0.77 0.13 222.66)",
"chart-5": "oklch(0.69 0.14 160.27)",
"radius": "0.5rem",
"sidebar": "oklch(0.96 0.01 311.36)",
"sidebar-foreground": "oklch(0.23 0 0)",
"sidebar-primary": "oklch(0.37 0.14 323.40)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.88 0.02 323.34)",
"sidebar-accent-foreground": "oklch(0.31 0.11 327.10)",
"sidebar-border": "oklch(0.91 0 0)",
"sidebar-ring": "oklch(0.37 0.14 323.40)",
"font-sans": "Lato, sans-serif",
"font-serif": "Merriweather, serif",
"font-mono": "Roboto Mono, monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"spacing": "0.25rem",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.23 0.01 260.69)",
"foreground": "oklch(0.93 0 0)",
"card": "oklch(0.26 0.01 260.70)",
"card-foreground": "oklch(0.93 0 0)",
"popover": "oklch(0.26 0.01 260.70)",
"popover-foreground": "oklch(0.93 0 0)",
"primary": "oklch(0.58 0.14 327.21)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.30 0.01 254.00)",
"secondary-foreground": "oklch(0.93 0 0)",
"muted": "oklch(0.26 0.01 260.70)",
"muted-foreground": "oklch(0.68 0 0)",
"accent": "oklch(0.33 0.03 326.28)",
"accent-foreground": "oklch(0.93 0 0)",
"destructive": "oklch(0.59 0.22 11.39)",
"border": "oklch(0.30 0.01 268.37)",
"input": "oklch(0.30 0.01 268.37)",
"ring": "oklch(0.58 0.14 327.21)",
"chart-1": "oklch(0.58 0.14 327.21)",
"chart-2": "oklch(0.77 0.13 222.66)",
"chart-3": "oklch(0.69 0.14 160.27)",
"chart-4": "oklch(0.59 0.22 11.39)",
"chart-5": "oklch(0.80 0.15 82.32)",
"sidebar": "oklch(0.23 0.01 260.69)",
"sidebar-foreground": "oklch(0.93 0 0)",
"sidebar-primary": "oklch(0.58 0.14 327.21)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.33 0.03 326.28)",
"sidebar-accent-foreground": "oklch(0.93 0 0)",
"sidebar-border": "oklch(0.30 0.01 268.37)",
"sidebar-ring": "oklch(0.58 0.14 327.21)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "sunset-horizon",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "Montserrat, sans-serif",
"font-mono": "Ubuntu Mono, monospace",
"font-serif": "Merriweather, serif",
"radius": "0.625rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.99 0.01 67.74)",
"foreground": "oklch(0.34 0.01 7.89)",
"card": "oklch(1.00 0 0)",
"card-foreground": "oklch(0.34 0.01 7.89)",
"popover": "oklch(1.00 0 0)",
"popover-foreground": "oklch(0.34 0.01 7.89)",
"primary": "oklch(0.74 0.16 34.57)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.96 0.02 28.97)",
"secondary-foreground": "oklch(0.56 0.13 32.65)",
"muted": "oklch(0.97 0.02 44.86)",
"muted-foreground": "oklch(0.49 0.05 27.86)",
"accent": "oklch(0.83 0.11 57.89)",
"accent-foreground": "oklch(0.34 0.01 7.89)",
"destructive": "oklch(0.61 0.21 22.21)",
"border": "oklch(0.93 0.04 40.57)",
"input": "oklch(0.93 0.04 40.57)",
"ring": "oklch(0.74 0.16 34.57)",
"chart-1": "oklch(0.74 0.16 34.57)",
"chart-2": "oklch(0.83 0.11 57.89)",
"chart-3": "oklch(0.88 0.08 56.41)",
"chart-4": "oklch(0.82 0.11 41.27)",
"chart-5": "oklch(0.64 0.13 32.06)",
"radius": "0.625rem",
"sidebar": "oklch(0.97 0.02 44.86)",
"sidebar-foreground": "oklch(0.34 0.01 7.89)",
"sidebar-primary": "oklch(0.74 0.16 34.57)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.83 0.11 57.89)",
"sidebar-accent-foreground": "oklch(0.34 0.01 7.89)",
"sidebar-border": "oklch(0.93 0.04 40.57)",
"sidebar-ring": "oklch(0.74 0.16 34.57)",
"font-sans": "Montserrat, sans-serif",
"font-serif": "Merriweather, serif",
"font-mono": "Ubuntu Mono, monospace",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.09",
"shadow-blur": "12px",
"shadow-spread": "-3px",
"shadow-offset-x": "0px",
"shadow-offset-y": "6px",
"spacing": "0.25rem",
"shadow-2xs": "0px 6px 12px -3px oklch(0.00 0 0 / 0.04)",
"shadow-xs": "0px 6px 12px -3px oklch(0.00 0 0 / 0.04)",
"shadow-sm": "0px 6px 12px -3px oklch(0.00 0 0 / 0.09), 0px 1px 2px -4px oklch(0.00 0 0 / 0.09)",
"shadow": "0px 6px 12px -3px oklch(0.00 0 0 / 0.09), 0px 1px 2px -4px oklch(0.00 0 0 / 0.09)",
"shadow-md": "0px 6px 12px -3px oklch(0.00 0 0 / 0.09), 0px 2px 4px -4px oklch(0.00 0 0 / 0.09)",
"shadow-lg": "0px 6px 12px -3px oklch(0.00 0 0 / 0.09), 0px 4px 6px -4px oklch(0.00 0 0 / 0.09)",
"shadow-xl": "0px 6px 12px -3px oklch(0.00 0 0 / 0.09), 0px 8px 10px -4px oklch(0.00 0 0 / 0.09)",
"shadow-2xl": "0px 6px 12px -3px oklch(0.00 0 0 / 0.22)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.26 0.02 351.79)",
"foreground": "oklch(0.94 0.01 48.70)",
"card": "oklch(0.32 0.02 339.89)",
"card-foreground": "oklch(0.94 0.01 48.70)",
"popover": "oklch(0.32 0.02 339.89)",
"popover-foreground": "oklch(0.94 0.01 48.70)",
"primary": "oklch(0.74 0.16 34.57)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.36 0.02 342.33)",
"secondary-foreground": "oklch(0.94 0.01 48.70)",
"muted": "oklch(0.32 0.02 339.89)",
"muted-foreground": "oklch(0.84 0.02 50.14)",
"accent": "oklch(0.83 0.11 57.89)",
"accent-foreground": "oklch(0.26 0.02 351.79)",
"destructive": "oklch(0.61 0.21 22.21)",
"border": "oklch(0.36 0.02 342.33)",
"input": "oklch(0.36 0.02 342.33)",
"ring": "oklch(0.74 0.16 34.57)",
"chart-1": "oklch(0.74 0.16 34.57)",
"chart-2": "oklch(0.83 0.11 57.89)",
"chart-3": "oklch(0.88 0.08 56.41)",
"chart-4": "oklch(0.82 0.11 41.27)",
"chart-5": "oklch(0.64 0.13 32.06)",
"sidebar": "oklch(0.26 0.02 351.79)",
"sidebar-foreground": "oklch(0.94 0.01 48.70)",
"sidebar-primary": "oklch(0.74 0.16 34.57)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.83 0.11 57.89)",
"sidebar-accent-foreground": "oklch(0.26 0.02 351.79)",
"sidebar-border": "oklch(0.36 0.02 342.33)",
"sidebar-ring": "oklch(0.74 0.16 34.57)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,133 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "valorant",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"css": {
"@layer base": {
"body": {
"letter-spacing": "var(--tracking-normal)"
}
}
},
"cssVars": {
"theme": {
"font-sans": "Barlow",
"font-mono": "JetBrains Mono",
"font-serif": "Merriweather",
"radius": "0rem",
"tracking-tighter": "calc(var(--tracking-normal) - 0.05em)",
"tracking-tight": "calc(var(--tracking-normal) - 0.025em)",
"tracking-wide": "calc(var(--tracking-normal) + 0.025em)",
"tracking-wider": "calc(var(--tracking-normal) + 0.05em)",
"tracking-widest": "calc(var(--tracking-normal) + 0.1em)"
},
"light": {
"background": "oklch(0.97 0.02 12.89)",
"foreground": "oklch(0.24 0.07 17.95)",
"card": "oklch(0.98 0.01 17.50)",
"card-foreground": "oklch(0.26 0.07 19.47)",
"popover": "oklch(0.98 0.01 17.50)",
"popover-foreground": "oklch(0.26 0.07 19.47)",
"primary": "oklch(0.67 0.22 21.22)",
"primary-foreground": "oklch(0.99 0 0)",
"secondary": "oklch(0.95 0.02 10.30)",
"secondary-foreground": "oklch(0.24 0.07 17.95)",
"muted": "oklch(0.98 0.01 17.50)",
"muted-foreground": "oklch(0.26 0.07 19.47)",
"accent": "oklch(0.99 0 0)",
"accent-foreground": "oklch(0.43 0.13 20.48)",
"destructive": "oklch(0.80 0.17 73.59)",
"border": "oklch(0.91 0.05 10.24)",
"input": "oklch(0.90 0.05 11.99)",
"ring": "oklch(0.92 0.04 12.26)",
"chart-1": "oklch(0.86 0.18 88.48)",
"chart-2": "oklch(0.62 0.21 255.62)",
"chart-3": "oklch(0.54 0.29 297.65)",
"chart-4": "oklch(0.95 0.10 98.75)",
"chart-5": "oklch(0.87 0.12 100.10)",
"radius": "0rem",
"sidebar": "oklch(0.97 0.02 12.89)",
"sidebar-foreground": "oklch(0.26 0.07 19.47)",
"sidebar-primary": "oklch(0.67 0.22 21.22)",
"sidebar-primary-foreground": "oklch(0.98 0.01 17.50)",
"sidebar-accent": "oklch(0.98 0.01 17.50)",
"sidebar-accent-foreground": "oklch(0.43 0.13 20.48)",
"sidebar-border": "oklch(0.91 0.05 10.24)",
"sidebar-ring": "oklch(0.92 0.04 12.26)",
"font-sans": "Barlow",
"font-serif": "Merriweather",
"font-mono": "JetBrains Mono",
"shadow-color": "oklch(0.3 0.0891 19.6)",
"shadow-opacity": "0.08",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0px",
"shadow-offset-y": "0px",
"spacing": "0.25rem",
"shadow-2xs": "0px 0px 3px 0px oklch(0.30 0.09 19.60 / 0.04)",
"shadow-xs": "0px 0px 3px 0px oklch(0.30 0.09 19.60 / 0.04)",
"shadow-sm": "0px 0px 3px 0px oklch(0.30 0.09 19.60 / 0.08), 0px 1px 2px -1px oklch(0.30 0.09 19.60 / 0.08)",
"shadow": "0px 0px 3px 0px oklch(0.30 0.09 19.60 / 0.08), 0px 1px 2px -1px oklch(0.30 0.09 19.60 / 0.08)",
"shadow-md": "0px 0px 3px 0px oklch(0.30 0.09 19.60 / 0.08), 0px 2px 4px -1px oklch(0.30 0.09 19.60 / 0.08)",
"shadow-lg": "0px 0px 3px 0px oklch(0.30 0.09 19.60 / 0.08), 0px 4px 6px -1px oklch(0.30 0.09 19.60 / 0.08)",
"shadow-xl": "0px 0px 3px 0px oklch(0.30 0.09 19.60 / 0.08), 0px 8px 10px -1px oklch(0.30 0.09 19.60 / 0.08)",
"shadow-2xl": "0px 0px 3px 0px oklch(0.30 0.09 19.60 / 0.20)",
"tracking-normal": "0em"
},
"dark": {
"background": "oklch(0.16 0.03 16.52)",
"foreground": "oklch(0.99 0 0)",
"card": "oklch(0.21 0.05 18.42)",
"card-foreground": "oklch(0.98 0 0)",
"popover": "oklch(0.26 0.07 19.47)",
"popover-foreground": "oklch(0.99 0 0)",
"primary": "oklch(0.67 0.22 21.22)",
"primary-foreground": "oklch(0.99 0 0)",
"secondary": "oklch(0.30 0.09 19.60)",
"secondary-foreground": "oklch(0.95 0.02 10.30)",
"muted": "oklch(0.26 0.07 19.47)",
"muted-foreground": "oklch(0.99 0 0)",
"accent": "oklch(0.43 0.13 20.48)",
"accent-foreground": "oklch(0.99 0 0)",
"destructive": "oklch(0.80 0.17 73.59)",
"border": "oklch(0.31 0.09 19.47)",
"input": "oklch(0.39 0.12 20.38)",
"ring": "oklch(0.50 0.16 20.99)",
"chart-1": "oklch(0.86 0.18 88.48)",
"chart-2": "oklch(0.62 0.21 255.62)",
"chart-3": "oklch(0.54 0.29 297.65)",
"chart-4": "oklch(0.95 0.10 98.75)",
"chart-5": "oklch(0.87 0.12 100.10)",
"sidebar": "oklch(0.26 0.07 19.47)",
"sidebar-foreground": "oklch(0.99 0 0)",
"sidebar-primary": "oklch(0.67 0.22 21.22)",
"sidebar-primary-foreground": "oklch(0.99 0 0)",
"sidebar-accent": "oklch(0.43 0.13 20.48)",
"sidebar-accent-foreground": "oklch(0.99 0 0)",
"sidebar-border": "oklch(0.39 0.12 20.38)",
"sidebar-ring": "oklch(0.50 0.16 20.99)",
"shadow-color": "hsl(0 0% 0%)",
"shadow-opacity": "0.1",
"shadow-blur": "3px",
"shadow-spread": "0px",
"shadow-offset-x": "0",
"shadow-offset-y": "1px",
"letter-spacing": "0em",
"spacing": "0.25rem",
"radius": "0.625rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"shadow-2xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-xs": "0 1px 3px 0px oklch(0.00 0 0 / 0.05)",
"shadow-sm": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 1px 2px -1px oklch(0.00 0 0 / 0.10)",
"shadow-md": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 2px 4px -1px oklch(0.00 0 0 / 0.10)",
"shadow-lg": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 4px 6px -1px oklch(0.00 0 0 / 0.10)",
"shadow-xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.10), 0 8px 10px -1px oklch(0.00 0 0 / 0.10)",
"shadow-2xl": "0 1px 3px 0px oklch(0.00 0 0 / 0.25)"
}
}
}

View file

@ -0,0 +1,90 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "vintage-paper",
"type": "registry:style",
"dependencies": [],
"registryDependencies": [],
"cssVars": {
"theme": {
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"radius": "0.25rem"
},
"light": {
"background": "oklch(0.96 0.02 90.19)",
"foreground": "oklch(0.38 0.02 64.34)",
"card": "oklch(0.99 0.01 87.41)",
"card-foreground": "oklch(0.38 0.02 64.34)",
"popover": "oklch(0.99 0.01 87.41)",
"popover-foreground": "oklch(0.38 0.02 64.34)",
"primary": "oklch(0.62 0.08 65.54)",
"primary-foreground": "oklch(1.00 0 0)",
"secondary": "oklch(0.88 0.03 85.55)",
"secondary-foreground": "oklch(0.43 0.03 64.93)",
"muted": "oklch(0.92 0.02 83.04)",
"muted-foreground": "oklch(0.54 0.04 71.16)",
"accent": "oklch(0.83 0.04 88.79)",
"accent-foreground": "oklch(0.38 0.02 64.34)",
"destructive": "oklch(0.55 0.14 32.92)",
"border": "oklch(0.86 0.03 84.57)",
"input": "oklch(0.86 0.03 84.57)",
"ring": "oklch(0.62 0.08 65.54)",
"chart-1": "oklch(0.62 0.08 65.54)",
"chart-2": "oklch(0.56 0.06 68.58)",
"chart-3": "oklch(0.49 0.06 72.68)",
"chart-4": "oklch(0.68 0.06 64.77)",
"chart-5": "oklch(0.73 0.06 66.69)",
"radius": "0.25rem",
"sidebar": "oklch(0.92 0.02 83.04)",
"sidebar-foreground": "oklch(0.38 0.02 64.34)",
"sidebar-primary": "oklch(0.62 0.08 65.54)",
"sidebar-primary-foreground": "oklch(1.00 0 0)",
"sidebar-accent": "oklch(0.83 0.04 88.79)",
"sidebar-accent-foreground": "oklch(0.38 0.02 64.34)",
"sidebar-border": "oklch(0.86 0.03 84.57)",
"sidebar-ring": "oklch(0.62 0.08 65.54)",
"font-sans": "Libre Baskerville, serif",
"font-serif": "Lora, serif",
"font-mono": "IBM Plex Mono, monospace"
},
"dark": {
"background": "oklch(0.27 0.01 57.66)",
"foreground": "oklch(0.92 0.02 83.04)",
"card": "oklch(0.32 0.02 59.07)",
"card-foreground": "oklch(0.92 0.02 83.04)",
"popover": "oklch(0.32 0.02 59.07)",
"popover-foreground": "oklch(0.92 0.02 83.04)",
"primary": "oklch(0.73 0.06 66.69)",
"primary-foreground": "oklch(0.27 0.01 57.66)",
"secondary": "oklch(0.38 0.02 57.13)",
"secondary-foreground": "oklch(0.92 0.02 83.04)",
"muted": "oklch(0.32 0.02 59.07)",
"muted-foreground": "oklch(0.80 0.02 82.09)",
"accent": "oklch(0.42 0.03 56.34)",
"accent-foreground": "oklch(0.92 0.02 83.04)",
"destructive": "oklch(0.55 0.14 32.92)",
"border": "oklch(0.38 0.02 57.13)",
"input": "oklch(0.38 0.02 57.13)",
"ring": "oklch(0.73 0.06 66.69)",
"chart-1": "oklch(0.73 0.06 66.69)",
"chart-2": "oklch(0.68 0.06 64.77)",
"chart-3": "oklch(0.62 0.08 65.54)",
"chart-4": "oklch(0.56 0.06 68.58)",
"chart-5": "oklch(0.49 0.06 72.68)",
"sidebar": "oklch(0.27 0.01 57.66)",
"sidebar-foreground": "oklch(0.92 0.02 83.04)",
"sidebar-primary": "oklch(0.73 0.06 66.69)",
"sidebar-primary-foreground": "oklch(0.27 0.01 57.66)",
"sidebar-accent": "oklch(0.42 0.03 56.34)",
"sidebar-accent-foreground": "oklch(0.92 0.02 83.04)",
"sidebar-border": "oklch(0.38 0.02 57.13)",
"sidebar-ring": "oklch(0.73 0.06 66.69)",
"radius": "0.25rem",
"font-sans": "'Geist', 'Geist Fallback', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'",
"font-serif": "\"Geist\", \"Geist Fallback\", ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif",
"font-mono": "\"Geist Mono\", \"Geist Mono Fallback\", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace"
}
},
"css": {}
}

813
registry.json Normal file
View file

@ -0,0 +1,813 @@
{
"$schema": "https://ui.shadcn.com/schema/registry.json",
"name": "acme",
"homepage": "https://shadcn-studio-internal.vercel.app",
"items": [
{
"name": "avatar-01",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-01.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-01.tsx"
}
]
},
{
"name": "avatar-02",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-02.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-02.tsx"
}
]
},
{
"name": "avatar-03",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-03.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-03.tsx"
}
]
},
{
"name": "avatar-04",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-04.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-04.tsx"
}
]
},
{
"name": "avatar-05",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-05.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-05.tsx"
}
]
},
{
"name": "avatar-06",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-06.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-06.tsx"
}
]
},
{
"name": "avatar-07",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-07.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-07.tsx"
}
]
},
{
"name": "avatar-08",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-08.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-08.tsx"
}
]
},
{
"name": "avatar-09",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-09.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-09.tsx"
}
]
},
{
"name": "avatar-10",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-10.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-10.tsx"
}
]
},
{
"name": "avatar-11",
"type": "registry:component",
"registryDependencies": [
"avatar",
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-11.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-11.tsx"
}
]
},
{
"name": "avatar-12",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-12.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-12.tsx"
}
]
},
{
"name": "avatar-13",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-13.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-13.tsx"
}
]
},
{
"name": "avatar-14",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-14.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-14.tsx"
}
]
},
{
"name": "avatar-15",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-15.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-15.tsx"
}
]
},
{
"name": "avatar-16",
"type": "registry:component",
"registryDependencies": [
"avatar",
"tooltip"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-16.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-16.tsx"
}
]
},
{
"name": "avatar-17",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-17.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-17.tsx"
}
]
},
{
"name": "avatar-18",
"type": "registry:component",
"registryDependencies": [
"avatar",
"tooltip"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-18.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-18.tsx"
}
]
},
{
"name": "avatar-19",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar",
"dropdown-menu"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-19.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-19.tsx"
}
]
},
{
"name": "avatar-20",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-20.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-20.tsx"
}
]
},
{
"name": "avatar-21",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/avatar/avatar-21.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/avatar/avatar-21.tsx"
}
]
},
{
"name": "badge-01",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-01.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-01.tsx"
}
]
},
{
"name": "badge-02",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-02.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-02.tsx"
}
]
},
{
"name": "badge-03",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-03.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-03.tsx"
}
]
},
{
"name": "badge-04",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-04.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-04.tsx"
}
]
},
{
"name": "badge-05",
"type": "registry:component",
"files": [
{
"path": "src/registry/new-york/components/badge/badge-05.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-05.tsx"
}
]
},
{
"name": "badge-06",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-06.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-06.tsx"
}
]
},
{
"name": "badge-07",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-07.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-07.tsx"
}
]
},
{
"name": "badge-08",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-08.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-08.tsx"
}
]
},
{
"name": "badge-09",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-09.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-09.tsx"
}
]
},
{
"name": "badge-10",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-10.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-10.tsx"
}
]
},
{
"name": "badge-11",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-11.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-11.tsx"
}
]
},
{
"name": "badge-12",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-12.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-12.tsx"
}
]
},
{
"name": "badge-13",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge",
"checkbox"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-13.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-13.tsx"
}
]
},
{
"name": "badge-14",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-14.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-14.tsx"
}
]
},
{
"name": "badge-15",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-15.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-15.tsx"
}
]
},
{
"name": "badge-16",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-16.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-16.tsx"
}
]
},
{
"name": "badge-17",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-17.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-17.tsx"
}
]
},
{
"name": "badge-18",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-18.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-18.tsx"
}
]
},
{
"name": "badge-19",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-19.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-19.tsx"
}
]
},
{
"name": "badge-20",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-20.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-20.tsx"
}
]
},
{
"name": "badge-21",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-21.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-21.tsx"
}
]
},
{
"name": "badge-22",
"type": "registry:component",
"registryDependencies": [
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-22.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-22.tsx"
}
]
},
{
"name": "badge-23",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"avatar",
"badge"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-23.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-23.tsx"
}
]
},
{
"name": "badge-24",
"type": "registry:component",
"registryDependencies": [
"avatar"
],
"files": [
{
"path": "src/registry/new-york/components/badge/badge-24.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/badge/badge-24.tsx"
}
]
},
{
"name": "breadcrumb-01",
"type": "registry:component",
"registryDependencies": [
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-01.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-01.tsx"
}
]
},
{
"name": "breadcrumb-02",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-02.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-02.tsx"
}
]
},
{
"name": "breadcrumb-03",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-03.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-03.tsx"
}
]
},
{
"name": "breadcrumb-04",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-04.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-04.tsx"
}
]
},
{
"name": "breadcrumb-05",
"type": "registry:component",
"registryDependencies": [
"badge",
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-05.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-05.tsx"
}
]
},
{
"name": "breadcrumb-06",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"badge",
"breadcrumb",
"dropdown-menu"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-06.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-06.tsx"
}
]
},
{
"name": "breadcrumb-07",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"breadcrumb",
"dropdown-menu"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-07.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-07.tsx"
}
]
},
{
"name": "breadcrumb-08",
"type": "registry:component",
"dependencies": [
"lucide-react"
],
"registryDependencies": [
"breadcrumb"
],
"files": [
{
"path": "src/registry/new-york/components/breadcrumb/breadcrumb-08.tsx",
"type": "registry:component",
"target": "components/shadcn-studio/breadcrumb/breadcrumb-08.tsx"
}
]
}
]
}

View file

@ -0,0 +1,160 @@
import fs from 'fs'
import path from 'path'
// Type Imports
import type { ThemeStyles, ThemeStyleProps } from '@/types/theme'
import type { ColorFormat } from '@/utils/color-converter'
// Utils
import { colorFormatter } from '@/utils/color-converter'
import { getPresetThemeStyles, presets } from '@/utils/theme-presets'
import { defaultDarkThemeStyles, defaultLightThemeStyles } from '@/config/theme'
import { getShadowMap } from '@/utils/shadows'
const THEMES_DIR = path.join(process.cwd(), 'public', 'r', 'themes')
// Ensure the themes directory exists
if (!fs.existsSync(THEMES_DIR)) {
fs.mkdirSync(THEMES_DIR, { recursive: true })
}
// Convert HSL color to the format expected by shadcn registry
const convertToRegistryColor = (color: string): string => {
return colorFormatter(color, 'oklch')
}
// Helper to get a value from either dark or light theme
const getThemeValue = (dark: ThemeStyleProps, light: ThemeStyleProps, key: keyof ThemeStyleProps): string => {
return light[key] || dark[key] || ''
}
// Convert theme styles to registry format
const convertThemeStyles = (styles: ThemeStyles) => {
const { light, dark, css } = styles
const convertTheme = (theme: ThemeStyleProps | Partial<ThemeStyleProps>): ThemeStyleProps => {
const result: ThemeStyleProps = {
...defaultLightThemeStyles,
...theme
}
const convertColor = (color?: string) => convertToRegistryColor(color || '')
// Convert all color values
result.background = convertColor(theme.background)
result.foreground = convertColor(theme.foreground)
result.card = convertColor(theme.card)
result['card-foreground'] = convertColor(theme['card-foreground'])
result.popover = convertColor(theme.popover)
result['popover-foreground'] = convertColor(theme['popover-foreground'])
result.primary = convertColor(theme.primary)
result['primary-foreground'] = convertColor(theme['primary-foreground'])
result.secondary = convertColor(theme.secondary)
result['secondary-foreground'] = convertColor(theme['secondary-foreground'])
result.muted = convertColor(theme.muted)
result['muted-foreground'] = convertColor(theme['muted-foreground'])
result.accent = convertColor(theme.accent)
result['accent-foreground'] = convertColor(theme['accent-foreground'])
result.destructive = convertColor(theme.destructive)
result.border = convertColor(theme.border)
result.input = convertColor(theme.input)
result.ring = convertColor(theme.ring)
result['chart-1'] = convertColor(theme['chart-1'])
result['chart-2'] = convertColor(theme['chart-2'])
result['chart-3'] = convertColor(theme['chart-3'])
result['chart-4'] = convertColor(theme['chart-4'])
result['chart-5'] = convertColor(theme['chart-5'])
result.sidebar = convertColor(theme.sidebar)
result['sidebar-foreground'] = convertColor(theme['sidebar-foreground'])
result['sidebar-primary'] = convertColor(theme['sidebar-primary'])
result['sidebar-primary-foreground'] = convertColor(theme['sidebar-primary-foreground'])
result['sidebar-accent'] = convertColor(theme['sidebar-accent'])
result['sidebar-accent-foreground'] = convertColor(theme['sidebar-accent-foreground'])
result['sidebar-border'] = convertColor(theme['sidebar-border'])
result['sidebar-ring'] = convertColor(theme['sidebar-ring'])
return result
}
return {
light: { ...defaultLightThemeStyles, ...convertTheme(light) },
dark: { ...defaultDarkThemeStyles, ...convertTheme(dark) },
css: css
}
}
const generateThemeRegistry = (name: string, color: ColorFormat) => {
const { light, dark, css } = convertThemeStyles(getPresetThemeStyles(name))
const lightShadows = getShadowMap(light, color)
const darkShadows = getShadowMap(dark, color)
// Create a version of light without letter-spacing
const lightWithoutLetterSpacing = { ...light }
delete lightWithoutLetterSpacing['letter-spacing']
const registryItem = {
$schema: 'https://ui.shadcn.com/schema/registry-item.json',
name,
type: 'registry:style',
dependencies: [],
registryDependencies: [],
css: {
'@layer base': {
body: {
'letter-spacing': 'var(--tracking-normal)'
}
},
...css
},
cssVars: {
theme: {
'font-sans': getThemeValue(dark, light, 'font-sans') || 'Inter, sans-serif',
'font-mono': getThemeValue(dark, light, 'font-mono') || 'monospace',
'font-serif': getThemeValue(dark, light, 'font-serif') || 'serif',
radius: getThemeValue(dark, light, 'radius') || '0.5rem',
'tracking-tighter': 'calc(var(--tracking-normal) - 0.05em)',
'tracking-tight': 'calc(var(--tracking-normal) - 0.025em)',
'tracking-wide': 'calc(var(--tracking-normal) + 0.025em)',
'tracking-wider': 'calc(var(--tracking-normal) + 0.05em)',
'tracking-widest': 'calc(var(--tracking-normal) + 0.1em)'
},
light: {
...lightWithoutLetterSpacing,
'shadow-2xs': lightShadows['shadow-2xs'],
'shadow-xs': lightShadows['shadow-xs'],
'shadow-sm': lightShadows['shadow-sm'],
shadow: lightShadows['shadow'],
'shadow-md': lightShadows['shadow-md'],
'shadow-lg': lightShadows['shadow-lg'],
'shadow-xl': lightShadows['shadow-xl'],
'shadow-2xl': lightShadows['shadow-2xl'],
'tracking-normal': getThemeValue(dark, light, 'letter-spacing') || '0em',
spacing: getThemeValue(dark, light, 'spacing') || '0.25rem'
},
dark: {
...dark,
'shadow-2xs': darkShadows['shadow-2xs'],
'shadow-xs': darkShadows['shadow-xs'],
'shadow-sm': darkShadows['shadow-sm'],
shadow: darkShadows['shadow'],
'shadow-md': darkShadows['shadow-md'],
'shadow-lg': darkShadows['shadow-lg'],
'shadow-xl': darkShadows['shadow-xl'],
'shadow-2xl': darkShadows['shadow-2xl']
}
}
}
return registryItem
}
// Generate registry files for all presets
Object.keys(presets).forEach(name => {
const registryItem = generateThemeRegistry(name, 'oklch')
const filePath = path.join(THEMES_DIR, `${name}.json`)
fs.writeFileSync(filePath, JSON.stringify(registryItem, null, 2))
console.log(`Generated registry file for theme: ${name}`)
})

View file

@ -0,0 +1,81 @@
// Next Imports
import Link from 'next/link'
import type { Metadata } from 'next'
// Config Imports
import { categories } from '@/config/components'
// SVG Imports
import MoreComponents from '@/assets/svg/MoreComponents'
export const metadata: Metadata = {
title: 'Shadcn Components',
description:
'An open-source collection of copy-and-paste Shadcn Components designed to accelerate your project development.',
openGraph: {
title: 'Shadcn Components',
description:
'An open-source collection of copy-and-paste Shadcn Components designed to accelerate your project development.',
url: 'https://shadcnstudio.com/components',
images: [
{
url: 'https://cdn.shadcnstudio.com/ss-assets/smm/marketing/shadcn-studio-smm-banner.png',
type: 'image/png',
width: 1200,
height: 630,
alt: 'Shadcn Studio - Craft Stunning Shadcn UI, Lightning Fast'
}
]
},
twitter: {
card: 'summary_large_image',
title: 'Shadcn Components',
description:
'An open-source collection of copy-and-paste Shadcn Components designed to accelerate your project development.'
},
alternates: {
canonical: 'https://shadcnstudio.com/components'
}
}
const Page = () => {
return (
<div className='flex flex-col items-start justify-center space-y-4 p-4 sm:space-y-8 sm:p-8'>
<div className='flex flex-col space-y-3'>
<h1 className='text-2xl font-bold sm:text-3xl'>Shadcn Components</h1>
<p className='text-muted-foreground'>
An open-source collection of copy-and-paste Shadcn Components designed to accelerate your project development.
Below is a summary of the available component categories:
</p>
</div>
<div className='grid w-full gap-4 sm:grid-cols-2 sm:gap-6 md:grid-cols-3 xl:grid-cols-4'>
{categories
.filter(category => !category.isComingSoon)
.map(category => (
<div key={category.slug} className='group overflow-hidden rounded-xl border'>
<Link href={`/docs/components/${category.slug}`}>
<div className='bg-primary/[0.045] flex h-52 items-center justify-center border-b dark:bg-transparent'>
<category.svg className='transition-all duration-300 group-hover:scale-110' />
</div>
<div className='flex flex-col gap-0.5 p-4 text-center'>
<h2 className='text-lg font-medium'>{category.name}</h2>
<p className='text-muted-foreground text-sm'>{`${category.components.length} ${category.components.length === 1 ? 'Component' : 'Components'}`}</p>
</div>
</Link>
</div>
))}
<div className='group overflow-hidden rounded-xl border'>
<div className='bg-primary/[0.045] flex h-52 items-center justify-center border-b dark:bg-transparent'>
<MoreComponents className='transition-all duration-300 group-hover:scale-110' />
</div>
<div className='flex flex-col gap-0.5 p-4 text-center'>
<h2 className='text-lg font-medium'>More Components</h2>
<p className='text-muted-foreground text-sm'>Coming Soon</p>
</div>
</div>
</div>
</div>
)
}
export default Page

View file

@ -0,0 +1,11 @@
// React Imports
import type { ReactNode } from 'react'
// Component Imports
import FrontLayout from '@/components/layout/FrontLayout'
const Layout = ({ children }: { children: ReactNode }) => {
return <FrontLayout>{children}</FrontLayout>
}
export default Layout

View file

@ -0,0 +1,231 @@
// React Imports
import type { ReactNode } from 'react'
// Next Imports
import type { Metadata } from 'next'
// Third-party Imports
import { PlusIcon, Sparkles } from 'lucide-react'
import * as AccordionPrimitive from '@radix-ui/react-accordion'
// Component Imports
import { Accordion, AccordionContent, AccordionItem } from '@/registry/new-york/ui/accordion'
import { Badge } from '@/registry/new-york/ui/badge'
import { Card, CardContent, CardHeader } from '@/registry/new-york/ui/card'
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/registry/new-york/ui/tabs'
import CardsDemo from '@/components/examples/cards'
import MailPage from '@/components/examples/mail'
import DashboardPage from '@/components/examples/dashboard'
import MusicPage from '@/components/examples/music'
// Util Imports
import { cn } from '@/registry/new-york/lib/utils'
// Data Imports
import { features } from '@/assets/data/features'
import { roadmap } from '@/assets/data/roadmap'
import { faqs } from '@/assets/data/faqs'
export const metadata: Metadata = {
title: 'Shadcn Theme Editor',
description: 'Preview your theme changes across different components and layouts.',
openGraph: {
title: 'Shadcn Theme Editor',
description: 'Preview your theme changes across different components and layouts.',
url: 'https://shadcnstudio.com/theme-editor',
images: [
{
url: 'https://cdn.shadcnstudio.com/ss-assets/smm/marketing/shadcn-studio-smm-banner.png',
type: 'image/png',
width: 1200,
height: 630,
alt: 'Shadcn Studio - Craft Stunning Shadcn UI, Lightning Fast'
}
]
},
twitter: {
card: 'summary_large_image',
title: 'Shadcn Theme Editor',
description: 'Preview your theme changes across different components and layouts.'
},
alternates: {
canonical: 'https://shadcnstudio.com/theme-editor'
}
}
const ThemeEditor = () => {
return (
<div className='p-4 sm:p-8'>
<section className='pb-12 sm:pb-20'>
<div className='mb-12 flex flex-col items-center justify-center gap-4'>
<Badge variant='outline' className='rounded-full px-3 py-1.5 text-sm shadow-md'>
<Sparkles className='size-4' />
Visual Theme Editor
</Badge>
<h1 className='text-center text-3xl font-bold tracking-tight sm:text-4xl'>Shadcn Theme Editor</h1>
<p className='text-muted-foreground max-w-[800px] text-center'>
Preview your theme changes across different components and layouts.
</p>
</div>
<Tabs defaultValue='examples' className='h-full w-full gap-6'>
<TabsList className='w-full'>
<TabsTrigger value='examples' className='cursor-pointer'>
Examples
</TabsTrigger>
<TabsTrigger value='mail' className='cursor-pointer'>
Mail
</TabsTrigger>
<TabsTrigger value='dashboard' className='cursor-pointer'>
Dashboard
</TabsTrigger>
<TabsTrigger value='music' className='cursor-pointer'>
Music
</TabsTrigger>
</TabsList>
<TabsContent value='examples'>
<CardsDemo />
</TabsContent>
<TabsContent value='mail'>
<MailPage />
</TabsContent>
<TabsContent value='dashboard'>
<DashboardPage />
</TabsContent>
<TabsContent value='music'>
<MusicPage />
</TabsContent>
</Tabs>
</section>
<section className='py-12 sm:py-20'>
<div className='mb-12 flex flex-col items-center justify-center gap-4'>
<Badge variant='outline' className='rounded-full px-3 py-1.5 text-sm shadow-md'>
<Sparkles className='size-4' />
Features
</Badge>
<h2 className='text-center text-3xl font-bold tracking-tight sm:text-4xl'>
Design Your Perfect UI with Ease
</h2>
<p className='text-muted-foreground max-w-[800px] text-center'>
Transform your shadcn components in real timecustomize, save, and ship stunning interfaces faster than
ever.
</p>
</div>
<div className='mx-auto grid max-w-6xl gap-6 sm:grid-cols-2 lg:grid-cols-3'>
{features.map((feature, index) => (
<Card key={index} className='group gap-0'>
<CardHeader className='pb-3'>
<CardDecorator>
<feature.icon className='size-6' aria-hidden />
</CardDecorator>
<h3 className='mt-6 text-xl font-semibold'>{feature.title}</h3>
</CardHeader>
<CardContent>
<p className='text-muted-foreground text-sm'>{feature.description}</p>
</CardContent>
</Card>
))}
</div>
</section>
<section id='roadmap' className='py-12 sm:py-20'>
<div className='mb-12 flex flex-col items-center justify-center gap-4'>
<Badge variant='outline' className='rounded-full px-3 py-1.5 text-sm shadow-md'>
<Sparkles className='size-4' />
Roadmap
</Badge>
<h2 className='text-center text-3xl font-bold tracking-tight sm:text-4xl'>What&apos;s Coming Next</h2>
<p className='text-muted-foreground max-w-[800px] text-center'>
Discover the latest updates and features we&apos;re working on to enhance your experience.
</p>
</div>
<div className='mx-auto grid max-w-6xl gap-6 sm:grid-cols-2 lg:grid-cols-3'>
{roadmap.map((item, index) => (
<Card key={index} className='group gap-0'>
<CardContent className='relative'>
<div className='bg-muted mb-3 flex h-12 w-12 items-center justify-center rounded-full'>
<item.icon className='size-6' aria-hidden />
</div>
<h3 className='mb-2 text-xl font-semibold'>{item.title}</h3>
<p className='text-muted-foreground text-sm'>{item.description}</p>
<Badge
variant={item.status === 'In Progress' ? 'outline' : 'secondary'}
className={cn('absolute end-6 top-0 shadow')}
>
{item.status}
</Badge>
</CardContent>
</Card>
))}
</div>
</section>
<section className='py-12 sm:py-20'>
<div className='mb-12 flex flex-col items-center justify-center gap-4'>
<Badge variant='outline' className='rounded-full px-3 py-1.5 text-sm shadow-md'>
<Sparkles className='size-4' />
FAQ
</Badge>
<h2 className='text-center text-3xl font-bold tracking-tight sm:text-4xl'>Frequently Asked Questions</h2>
<p className='text-muted-foreground max-w-[800px] text-center'>
Find answers to common questions about shadcn/studio.
</p>
</div>
<div className='mx-auto grid w-full max-w-6xl gap-x-10 md:grid-cols-2'>
<Accordion type='single' collapsible className='w-full'>
{faqs.slice(0, 4).map(({ question, answer }, index) => (
<AccordionItem key={question} value={`question-${index}`}>
<AccordionPrimitive.Header className='flex'>
<AccordionPrimitive.Trigger
className={cn(
'flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-45',
'text-start text-lg'
)}
>
{question}
<PlusIcon className='text-muted-foreground h-5 w-5 shrink-0 transition-transform duration-200' />
</AccordionPrimitive.Trigger>
</AccordionPrimitive.Header>
<AccordionContent className='text-muted-foreground'>{answer}</AccordionContent>
</AccordionItem>
))}
</Accordion>
<Accordion type='single' collapsible className='w-full'>
{faqs.slice(4).map(({ question, answer }, index) => (
<AccordionItem key={question} value={`question-${index + 5}`}>
<AccordionPrimitive.Header className='flex'>
<AccordionPrimitive.Trigger
className={cn(
'flex flex-1 items-center justify-between py-4 font-medium tracking-tight transition-all hover:underline [&[data-state=open]>svg]:rotate-45',
'text-start text-lg'
)}
>
{question}
<PlusIcon className='text-muted-foreground h-5 w-5 shrink-0 transition-transform duration-200' />
</AccordionPrimitive.Trigger>
</AccordionPrimitive.Header>
<AccordionContent className='text-muted-foreground'>{answer}</AccordionContent>
</AccordionItem>
))}
</Accordion>
</div>
</section>
</div>
)
}
const CardDecorator = ({ children }: { children: ReactNode }) => (
<div className='relative mx-auto size-36 duration-200 [--color-border:color-mix(in_oklab,var(--color-zinc-950)10%,transparent)] group-hover:[--color-border:color-mix(in_oklab,var(--color-zinc-950)20%,transparent)] dark:[--color-border:color-mix(in_oklab,var(--color-white)15%,transparent)] dark:group-hover:bg-white/5 dark:group-hover:[--color-border:color-mix(in_oklab,var(--color-white)20%,transparent)]'>
<div
aria-hidden
className='absolute inset-0 bg-[linear-gradient(to_right,var(--color-border)_1px,transparent_1px),linear-gradient(to_bottom,var(--color-border)_1px,transparent_1px)] bg-[size:24px_24px]'
/>
<div aria-hidden className='to-background absolute inset-0 bg-radial from-transparent to-75%' />
<div className='bg-background absolute inset-0 m-auto flex size-12 items-center justify-center border-t border-l'>
{children}
</div>
</div>
)
export default ThemeEditor

View file

@ -0,0 +1,98 @@
// Next Imports
import { notFound } from 'next/navigation'
import type { Metadata, ResolvingMetadata } from 'next'
// Component Imports
import ComponentsGrid from '@/components/ComponentsGrid'
import ComponentDetails from '@/components/ComponentDetails'
import ComponentCard from '@/components/ComponentCard'
import ComponentLoader from '@/components/ComponentLoader'
// Config Imports
import { categories, getCategory } from '@/config/components'
// Util Imports
import { getComponentsByNames } from '@/utils/components'
type Props = {
params: Promise<{ category: string }>
}
export async function generateMetadata({ params }: Props, parent: ResolvingMetadata): Promise<Metadata> {
const category = getCategory((await params).category)
if (!category || category.isComingSoon) {
return {}
}
const components = getComponentsByNames(category.components.map(item => item.name))
const parentMetadata = await parent
const isSingleComponent = components.length === 1
return {
title: `Shadcn ${category.name}`,
description: isSingleComponent
? `Elevate your UI with a Shadcn ${category.name.toLowerCase()} component, built using React and Tailwind CSS.`
: `Elevate your UI with a growing collection of ${components.length}+ Shadcn ${category.name.toLowerCase()} components, built using React and Tailwind CSS.`,
openGraph: {
title: `Shadcn ${category.name}`,
description: isSingleComponent
? `Elevate your UI with a Shadcn ${category.name.toLowerCase()} component, built using React and Tailwind CSS.`
: `Elevate your UI with a growing collection of ${components.length}+ Shadcn ${category.name.toLowerCase()} components, built using React and Tailwind CSS.`,
url: `https://shadcnstudio.com/docs/components/${category.slug}`,
images: parentMetadata.openGraph?.images
},
twitter: {
card: parentMetadata.twitter?.card || 'summary_large_image',
title: `Shadcn ${category.name}`,
description: isSingleComponent
? `Elevate your UI with a Shadcn ${category.name.toLowerCase()} component, built using React and Tailwind CSS.`
: `Elevate your UI with a growing collection of ${components.length}+ Shadcn ${category.name.toLowerCase()} components, built using React and Tailwind CSS.`
},
alternates: {
canonical: `https://shadcnstudio.com/docs/components/${category.slug}`
}
}
}
export async function generateStaticParams() {
return categories
.filter(category => !category.isComingSoon)
.map(category => ({
category: category.slug
}))
}
const Page = async ({ params }: { params: Promise<{ category: string }> }) => {
const category = getCategory((await params).category)
if (!category || category.isComingSoon) {
notFound()
}
const components = getComponentsByNames(category.components.map(item => item.name))
return (
<div className='flex flex-1 flex-col space-y-4 p-4 sm:space-y-8 sm:p-8'>
<div className='flex flex-col space-y-3'>
<h1 className='text-2xl font-bold sm:text-3xl'>{`Shadcn ${category.name}`}</h1>
<p className='text-muted-foreground'>
{components.length === 1
? `Elevate your UI with a Shadcn ${category.name.toLowerCase()} component, built using React and Tailwind CSS.`
: `Elevate your UI with a growing collection of ${components.length}+ Shadcn ${category.name.toLowerCase()} components, built using React and Tailwind CSS.`}
</p>
</div>
<ComponentsGrid {...category.breakpoints}>
{components.map(component => (
<ComponentCard key={component.name} component={component}>
<ComponentLoader component={component} category={category.slug} />
<ComponentDetails component={component} />
</ComponentCard>
))}
</ComponentsGrid>
</div>
)
}
export default Page

View file

@ -0,0 +1,142 @@
// Next Imports
import type { Metadata } from 'next'
// Third-party Imports
import { PlusIcon } from 'lucide-react'
import * as AccordionPrimitive from '@radix-ui/react-accordion'
// Component Imports
import { Accordion, AccordionContent, AccordionItem } from '@/registry/new-york/ui/accordion'
// Data Imports
import { introFaqs } from '@/assets/data/faqs'
export const metadata: Metadata = {
title: 'Introduction',
description:
'An open-source Shadcn registry of copy-and-paste components, blocks, and templates—paired with a powerful theme editor to craft, customize, and ship faster.',
openGraph: {
title: 'Introduction',
description:
'An open-source Shadcn registry of copy-and-paste components, blocks, and templates—paired with a powerful theme editor to craft, customize, and ship faster.',
url: 'https://shadcnstudio.com/docs/getting-started/introduction',
images: [
{
url: 'https://cdn.shadcnstudio.com/ss-assets/smm/marketing/shadcn-studio-smm-banner.png',
type: 'image/png',
width: 1200,
height: 630,
alt: 'Shadcn Studio - Craft Stunning Shadcn UI, Lightning Fast'
}
]
},
twitter: {
card: 'summary_large_image',
title: 'Introduction',
description:
'An open-source Shadcn registry of copy-and-paste components, blocks, and templates—paired with a powerful theme editor to craft, customize, and ship faster.'
},
alternates: {
canonical: 'https://shadcnstudio.com/docs/getting-started/introduction'
}
}
const DocsPage = () => {
return (
<div className='flex flex-1 flex-col space-y-6 p-4 sm:space-y-10 sm:p-8'>
<div className='flex flex-col items-start space-y-3'>
<h1 className='text-2xl font-bold sm:text-3xl'>Introduction</h1>
<p className='text-muted-foreground'>
An open-source Shadcn registry of copy-and-paste components, blocks, and templatespaired with a powerful
theme editor to craft, customize, and ship faster.
</p>
</div>
<div className='flex flex-col items-start space-y-3'>
<h2 className='text-xl font-bold'>What is shadcn/studio?</h2>
<p className='text-foreground/80'>
<strong className='text-foreground font-semibold'>
This isn&apos;t a traditional component library or a replacement for Shadcn
</strong>
. Instead, it&apos;s a unique collection offers customizable variants of components, blocks, and templates.
Preview, customize, and copy-paste them into your apps with ease.
</p>
<p className='text-foreground/80'>
Building on the solid foundation of the Shadcn registry, we&apos;ve enhanced it with custom-designed
components & blocks to give you a head start. This allows you to craft, customize, and ship your projects
faster and more efficiently.
</p>
</div>
<div className='flex flex-col items-start space-y-3'>
<h2 className='text-xl font-bold'>Not a Standard Library, but a Distribution of Components</h2>
<p className='text-foreground/80'>
Following the philosophy of Shadcn, shadcn/studio isn&apos;t a conventional install-from-NPM library.
Rather, it&apos;s an open-source distribution of components designed for maximum adaptability. You can copy
the code, modify styles, adjust logic, or integrate it with other toolsfree from the limitations of typical
libraries. This &quot;open code&quot; model empowers you to customize with confidence and creativity.
</p>
</div>
<div className='flex flex-col items-start space-y-3'>
<h2 className='text-xl font-bold'>Why Should I use shadcn/studio?</h2>
<p className='text-foreground/80'>
shadcn/ui aims to provide core components with a unique distribution system, allowing developers to copy and
paste reusable, customizable UI elements directly into their codebase.
</p>
<p className='text-foreground/80'>
While this approach offers flexibility and control, it comes with some limitations: a lack of diverse
component variants examples, limited theme customization options, and limited pre-built blocks. Additionally,
its extensive customization options, though powerful, can sometimes feel overwhelming, especially for those
seeking a more guided or streamlined experience.
</p>
</div>
<div className='flex flex-col items-start space-y-3'>
<h3 className='text-md font-bold'>This is where shadcn/studio shines </h3>
<p className='text-foreground/80'>
An open-source Shadcn registry of copy-and-paste components, blocks, and templatespaired with a powerful
theme editor to craft, customize, and ship faster 🚀. It provides a robust toolkit for building stunning,
interactive user interfaces with ease.
</p>
<ul className='text-foreground/80 ms-8 list-disc space-y-2 lg:max-w-7/10'>
<li>
<span className='text-foreground font-semibold'>Open-source:</span> Dive into a growing, community-driven
collection of copy-and-paste components, blocks, and templates.
</li>
<li>
<span className='text-foreground font-semibold'>Component & Blocks variants:</span> Access a diverse,
collection of customizable shadcn component and block variants to quickly build and style your UI with ease.
</li>
<li>
<span className='text-foreground font-semibold'>Animated variants with Motion:</span> Add smooth, modern
animations to your components, enhancing user experiences with minimal effort.
</li>
<li>
<span className='text-foreground font-semibold'>Powerful theme editor:</span> Tailor your UI effortlessly
with real-time previews, ensuring consistent, branded designs delivered faster.
</li>
</ul>
</div>
<div className='flex flex-col items-start space-y-3'>
<h2 className='text-xl font-bold'>Frequently Asked Questions</h2>
<Accordion type='single' collapsible className='w-full'>
{introFaqs.map(({ question, answer }, index) => (
<AccordionItem key={question} value={`question-${index}`}>
<AccordionPrimitive.Header className='flex'>
<AccordionPrimitive.Trigger className='text-foreground/80 flex flex-1 items-center justify-between py-3 text-start font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-45'>
{question}
<PlusIcon className='text-muted-foreground h-5 w-5 shrink-0 transition-transform duration-200' />
</AccordionPrimitive.Trigger>
</AccordionPrimitive.Header>
<AccordionContent className='text-muted-foreground'>{answer}</AccordionContent>
</AccordionItem>
))}
</Accordion>
</div>
</div>
)
}
export default DocsPage

View file

@ -0,0 +1,16 @@
// React Imports
import type { ReactNode } from 'react'
// Component Imports
import { SidebarProvider } from '@/registry/new-york/ui/sidebar'
import PagesLayout from '@/components/layout/PagesLayout'
const Layout = ({ children }: { children: ReactNode }) => {
return (
<SidebarProvider>
<PagesLayout>{children}</PagesLayout>
</SidebarProvider>
)
}
export default Layout

Some files were not shown because too many files have changed in this diff Show more