A visual no-code theme editor for shadcn/ui components
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Update issue templates | 1 年前 | |
feat: added husky (#120) | 1 年前 | |
feat(community): add time range sort with polished dropdown UI Add "Popular / All Time", "Popular / This Month", "Popular / This Week" sort options that filter by publish date. Replace inline sort tabs with a grouped dropdown menu showing check marks on the active selection. Default sort is now Popular / All Time. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
redesign figma export dialog for shadcncraft v2 Updates the tweakcn × shadcncraft modal to match the new Figma design: new hero, UI blocks and React code sections, refreshed pricing card, and rebrand from "shadcraft" to "shadcncraft" across the figma surface. | 4 个月前 | |
fix figma export dialog: new logo, layout, font weight - Add shadcncraft.svg with new two-parallelogram mark - Switch dialog to use shadcncraft logo - Bump dialog max-width to 800px and split pricing card 3fr/2fr - Switch heading font weight from semibold to medium Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 4 个月前 | |
fix: keep AI chat image payloads under the serverless body limit Uploaded images were inlined as full-resolution base64 in the message metadata, and the entire chat history is posted on every turn. Two 4MB uploads exceeded the 4.5MB request body cap, so the platform rejected the request before the route ran (FUNCTION_PAYLOAD_TOO_LARGE). - Downscale and re-encode raster uploads client-side (1536px longest edge, WebP with a JPEG fallback, ~300KB target). UI screenshots land around 12KB with imperceptible color drift, so token extraction is unaffected. - Trim images from the oldest messages when the serialized request body would still exceed the budget, rather than failing the request outright. - Raise MAX_IMAGE_FILES from 2 to 5 now that the payload allows it, and wrap the multi-image message preview row so the thumbnails stay legible. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> | 22 天前 | |
Revert "Console+hydration errors (#178)" This reverts commit 88261b5c863cb5238fd42f11ab41847b2be13c04. | 1 年前 | |
perf(community): denormalize like_count, cache reads with unstable_cache - Add like_count column to community_theme table with backfill migration - Update toggleLikeTheme to atomically increment/decrement instead of COUNT(*) - Remove expensive GROUP BY subquery from getCommunityThemes and getCommunityDataForTheme - Wrap read queries with unstable_cache (60s themes, 300s tag counts) - Add revalidateTag calls to all write operations for cache invalidation - Increase React Query staleTime (themes 2m→5m, tags 5m→15m, published 5m→10m) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
OAuth 2.0 API for external app integrations (#267) * OAuth 2.0 API for external app integrations Implements the Authorization Code flow so external apps can authenticate tweakcn users and access their themes/profile via a REST API. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: simplify OAuth API routes and improve efficiency - Extract `requireAuth` helper to eliminate duplicated auth+scope boilerplate across all v1 API routes - Narrow SELECT queries to only fetch needed columns in hot paths (resolveUserFromBearerToken, authenticateClient, authorize, token) - Reuse `generateSecureToken`/`hashSecret` in create-oauth-app script instead of duplicating crypto logic - Unify sign-in handlers and loading state in OAuth authorize page - Use `oauthError` consistently for 404 responses Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * replace demo app with OAuth API documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * add /api/oauth/userinfo endpoint for genericOAuth compatibility Returns flat OIDC-style fields (sub, name, email, picture) so Better Auth's genericOAuth plugin and similar clients work out of the box without custom getUserInfo mapping. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
perf(community): denormalize like_count, cache reads with unstable_cache - Add like_count column to community_theme table with backfill migration - Update toggleLikeTheme to atomically increment/decrement instead of COUNT(*) - Remove expensive GROUP BY subquery from getCommunityThemes and getCommunityDataForTheme - Wrap read queries with unstable_cache (60s themes, 300s tag counts) - Add revalidateTag calls to all write operations for cache invalidation - Increase React Query staleTime (themes 2m→5m, tags 5m→15m, published 5m→10m) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
fix: keep AI chat image payloads under the serverless body limit Uploaded images were inlined as full-resolution base64 in the message metadata, and the entire chat history is posted on every turn. Two 4MB uploads exceeded the 4.5MB request body cap, so the platform rejected the request before the route ran (FUNCTION_PAYLOAD_TOO_LARGE). - Downscale and re-encode raster uploads client-side (1536px longest edge, WebP with a JPEG fallback, ~300KB target). UI screenshots land around 12KB with imperceptible color drift, so token extraction is unaffected. - Trim images from the oldest messages when the serialized request body would still exceed the budget, rather than failing the request outright. - Raise MAX_IMAGE_FILES from 2 to 5 now that the payload allows it, and wrap the multi-image message preview row so the thumbnails stay legible. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> | 22 天前 | |
fix: keep AI chat image payloads under the serverless body limit Uploaded images were inlined as full-resolution base64 in the message metadata, and the entire chat history is posted on every turn. Two 4MB uploads exceeded the 4.5MB request body cap, so the platform rejected the request before the route ran (FUNCTION_PAYLOAD_TOO_LARGE). - Downscale and re-encode raster uploads client-side (1536px longest edge, WebP with a JPEG fallback, ~300KB target). UI screenshots land around 12KB with imperceptible color drift, so token extraction is unaffected. - Trim images from the oldest messages when the serialized request body would still exceed the budget, rather than failing the request outright. - Raise MAX_IMAGE_FILES from 2 to 5 now that the payload allows it, and wrap the multi-image message preview row so the thumbnails stay legible. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> | 22 天前 | |
feat: add Application and Marketing preview tabs (shadcncraft blocks) (#282) Adds dense Application and full landing-page Marketing demo tabs to the theme preview, themed entirely via editor tokens. Includes follow-up fixes: Mail/Color Palette moved into the More previews dropdown, marketing scrollbar kept above the sticky nav, Application fills the preview frame, and atp/src tracking params on shadcncraft attribution links. | 2 个月前 | |
OAuth 2.0 API for external app integrations (#267) * OAuth 2.0 API for external app integrations Implements the Authorization Code flow so external apps can authenticate tweakcn users and access their themes/profile via a REST API. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * refactor: simplify OAuth API routes and improve efficiency - Extract `requireAuth` helper to eliminate duplicated auth+scope boilerplate across all v1 API routes - Narrow SELECT queries to only fetch needed columns in hot paths (resolveUserFromBearerToken, authenticateClient, authorize, token) - Reuse `generateSecureToken`/`hashSecret` in create-oauth-app script instead of duplicating crypto logic - Unify sign-in handlers and loading state in OAuth authorize page - Use `oauthError` consistently for 404 responses Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * replace demo app with OAuth API documentation Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * add /api/oauth/userinfo endpoint for genericOAuth compatibility Returns flat OIDC-style fields (sub, name, email, picture) so Better Auth's genericOAuth plugin and similar clients work out of the box without custom getUserInfo mapping. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
Feature/preview external (#225) * Enhance Preview Panel and Support External Websites (#184) * feat: Add Block Viewer for Preview Panel * feat: support theme injection for external websites * refactor: Improve Naming and Composition * Support for Google Fonts in Preview script and Error Feedback (#202) * feat: Add support for loading Google Fonts in the embed script. * feat: Add error state and UI feedback * fix font loading by overriding classes * add reset button + update some ui * syntax highlighting plus copy changes * rename script * update ui for connection status * ui * zustand store for preview state * use nuqs for active preview tab * get shadows working * refactor * A * add tracking --------- Co-authored-by: Luis Llanes <137589205+llanesluis@users.noreply.github.com> Co-authored-by: Luis Llanes <luisllaboj@gmail.com> | 10 个月前 | |
feat: add sidebar color sync toggle to sync with base colors Adds a "Sync" toggle button to the Sidebar color group header that syncs all sidebar colors to their respective base counterparts (e.g. sidebar background → background, sidebar-primary → primary). When enabled, base color changes automatically propagate to sidebar colors. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 5 个月前 | |
fix: keep AI chat image payloads under the serverless body limit Uploaded images were inlined as full-resolution base64 in the message metadata, and the entire chat history is posted on every turn. Two 4MB uploads exceeded the 4.5MB request body cap, so the platform rejected the request before the route ran (FUNCTION_PAYLOAD_TOO_LARGE). - Downscale and re-encode raster uploads client-side (1536px longest edge, WebP with a JPEG fallback, ~300KB target). UI screenshots land around 12KB with imperceptible color drift, so token extraction is unaffected. - Trim images from the oldest messages when the serialized request body would still exceed the budget, rather than failing the request outright. - Raise MAX_IMAGE_FILES from 2 to 5 now that the payload allows it, and wrap the multi-image message preview row so the thumbnails stay legible. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> | 22 天前 | |
feat: added docker (#119) * feat: added docker * switched env to env.local | 1 年前 | |
Feature/dynamic fonts (#197) * chore: allow overriding ControlSection classNames * feat: Support Google Fonts API and load fonts dynamically * feat: Enforce System Prompt to use Google Fonts API if needed * styles: Improve GoogleFontPicker styles * feat: Pull Fonts from fileSystem instead of hitting the Google Fonts API every time * feat: Improve System Prompt to reference Google Fonts * refactor: Use Next.js Cache instead of manually fetching and reading from the filesystem * feat: Only enable Font picker fetch when it's open * chore: Remove JSON for Google Fonts catalogue * feat: Scroll to selected font if it's already fetched and add clean search button * chore: update imports * fix: dashboard preview --------- Co-authored-by: Luis Llanes <luisllaboj@gmail.com> | 1 年前 | |
chore: add .env.example and update README with env setup instructions (#116) | 1 年前 | |
chore: Add prettier config and plugins | 1 年前 | |
chore: Add prettier config and plugins | 1 年前 | |
chore: add .env.example and update README with env setup instructions (#116) | 1 年前 | |
feat: added docker (#119) * feat: added docker * switched env to env.local | 1 年前 | |
Create LICENSE | 1 年前 | |
feat: revamp landing page and remove roadmap section Simplify and modernize the landing page components including hero, features, FAQ, how-it-works, and AI generation CTA. Remove the roadmap section entirely. Update AI chat message styling. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 6 个月前 | |
Enhance ai chat (#218) * update package locks to avoid conflict * Refactor AI Generation with AI SDK v5 (#210) * refactor(wip): Whole Chat implementation * fix: Deps * chore: Update types and create tool to handle theme generation * chore: Add hook and component to handle feedback text * chore: Check for themeStyles in asssiatant metadata * feat: Improve messages styles and feedback * chore: Update react-hook-form deps * chore: Improve Messages display * chore: Show a banner when theme is generating * chore: Optimize the Messages syncing * feat: Add debug button to MessageActions in dev mode * chore: messages * chore: Improve System prompt + tools + utils * fix: correctly display User messages with only images * feat: Handle errors in UI and adapt to AI sdk * feat: Use tool output instead of custom data parts * chore: System prompt and schema context * chore: Gemini 2.5 pro as the default model * refactor: Change name to Chat Context and apply generated theme automatically * chore: Update ai packages to latest version * feat: Stop ongoing request before starting a new chat * feat: Refactor logic for Scroll start/end sentinels * feat: Improve UI streaming with AI Elements and Stream Text utils * chore: Generate theme types and logic * feat: Allow customize the speed of streaming text * refactor: Theme generation utils * fix: Avoid duplicated Mention references * styles: Improve Chat error banner * feat: Enhance Prompt core implementation * feat: Implement enhance prompt in components * chore: Add TODOS comments * chore: Remove Openai provider * chore: Update AI adk packages * fix: Free request constant --------- Co-authored-by: Sahaj Jain <82111591+jnsahaj@users.noreply.github.com> * update lockfile * fix import * fix types * chore: Trigger theme generation before transitioning to editor page * refactor: Move AI sdk specific code into Lib and update imports * chore: Provide model ID to record usage util * refactor: Multi model provider convention * fix types * refactor: Use Zustand persist middleware versioning * feat: Improve prompts and context * feat: Optimize streaming JSONContent into text area * chore: Improve Theme Generation prompt * feat: Improve prompt * feat: Add subscription checks for enhancing prompt and Posthog tracking --------- Co-authored-by: Luis Llanes <137589205+llanesluis@users.noreply.github.com> Co-authored-by: Luis Llanes <luisllaboj@gmail.com> | 11 个月前 | |
feat: added docker (#119) * feat: added docker * switched env to env.local | 1 年前 | |
switch to neon | 1 年前 | |
fix: ESLint 9 compatibility with direct plugin config Replace FlatCompat-based eslint-config-next with direct plugin imports to fix "Unexpected top-level property name" error. This avoids the incompatibility between eslint-config-next and ESLint 9's flat config format. - Use @next/eslint-plugin-next directly - Use eslint-plugin-react directly - Use only classic react-hooks rules (not React Compiler rules) - Add typescript-eslint for TypeScript support - Update eslint-config-next to 15.4.10 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> | 7 个月前 | |
AI theme generation just got 10x better (#165) * feat: Add polar for tweakcn-plus checkout * migrate to polar nextjs for more control * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add checkout link support * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * refactor: follow naming convention * chore: refactor components and layout/pages for consistency * fix: enforce auth checks or redirect in /settings routes * chore: update Go Pro dialog * refactor: create reusable theme toggle component * feat: add Get Pro dialog to header * chore: rename GoPro dialog to GetPro and update imports * feat: add AI generation section to Home page and adjust Get Pro dialog * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * refactor: follow naming convention * chore: refactor components and layout/pages for consistency * fix: enforce auth checks or redirect in /settings routes * chore: update Go Pro dialog * refactor: create reusable theme toggle component * feat: add Get Pro dialog to header * chore: rename GoPro dialog to GetPro and update imports * feat: add AI generation section to Home page and adjust Get Pro dialog * feat: Add customer portal * feat: add chat input draft persistence (not images) * styles: improve styles for ai generation and alert banner defaults * feat: Send whole chat context to AI * fix: silly typo lol * feat: support images persistence and sync * feat: edit message (text, mentions and images) * fix: add eslint-disable for exhaustive-deps warnings * chore: fix build error & improve text and styles in suggested prompts * refactor: handle session and subscription checks and handle post login actions * migrate to turbopack * refactor: use reducer builder pattern to sync ai-draft-store with image-uploader * fix: ai-usage computation: account for abort * feat: Theme limit handling for pro tier * refactor: remove duplicate code from ai-chat-form and chat-input * feat: Add faq to pricing page * fix: /dashboard navigations -> /settings * feat: update ui for success page * feat: Migrate ai chat and draft message store to idb-keyval * feat: move subscription details in-house * generate migration * fix: build err * styles: improve Message UI * fix: allow scroll in GoPro dialog chat preview * feat: improve AI usage feedback when theme generation when success or failure * feat: Message UI enhancement when assistant message is error feedback * feat: add latest features in /ai page and refactor Core Theme Generation logic hooks * styles: improve styles and layout for consistency * styles: improve styles in settings pages for consistency * cancelled theme doesn't cost requests * update next to latest (for turbopack compat) * fail build if polar webhook secret is not set * update polar sdk and nextjs plugin * feat: Create customer before creating checkout for them * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * refactor: follow naming convention * chore: refactor components and layout/pages for consistency * fix: enforce auth checks or redirect in /settings routes * chore: update Go Pro dialog * refactor: create reusable theme toggle component * feat: add Get Pro dialog to header * chore: rename GoPro dialog to GetPro and update imports * feat: add AI generation section to Home page and adjust Get Pro dialog * feat: Add customer portal * feat: add chat input draft persistence (not images) * styles: improve styles for ai generation and alert banner defaults * feat: Send whole chat context to AI * fix: silly typo lol * feat: support images persistence and sync * feat: edit message (text, mentions and images) * fix: add eslint-disable for exhaustive-deps warnings * chore: fix build error & improve text and styles in suggested prompts * refactor: handle session and subscription checks and handle post login actions * migrate to turbopack * refactor: use reducer builder pattern to sync ai-draft-store with image-uploader * fix: ai-usage computation: account for abort * feat: Theme limit handling for pro tier * refactor: remove duplicate code from ai-chat-form and chat-input * feat: Add faq to pricing page * fix: /dashboard navigations -> /settings * feat: update ui for success page * feat: Migrate ai chat and draft message store to idb-keyval * feat: move subscription details in-house * generate migration * fix: build err * styles: improve Message UI * fix: allow scroll in GoPro dialog chat preview * feat: improve AI usage feedback when theme generation when success or failure * feat: Message UI enhancement when assistant message is error feedback * feat: add latest features in /ai page and refactor Core Theme Generation logic hooks * styles: improve styles and layout for consistency * styles: improve styles in settings pages for consistency * cancelled theme doesn't cost requests * update next to latest (for turbopack compat) * fail build if polar webhook secret is not set * update polar sdk and nextjs plugin * feat: Create customer before creating checkout for them --------- Co-authored-by: Luis Llanes <luisllaboj@gmail.com> | 1 年前 | |
feat: replace all `Dialog` usage with `Revola` for responsive behavior (Responsive Dialog) (#208) * chore: add @base-ui-components/react dependency and update pnpm-lock.yaml * feat: add custom hook useMediaQuery for responsive design * refactor: streamline button component code for improved readability * refactor: enhance ScrollArea component with viewport className prop and improve className organization * refactor: replace Dialog component with ResponsiveDialog for improved responsiveness and UI consistency * feat: introduce ResponsiveDialog component for enhanced mobile and desktop dialog handling * refactor: update Next.js configuration to use TypeScript type for NextConfig * refactor: replace Dialog with ResponsiveDialog in CardsChat component for improved UI consistency and responsiveness * refactor: replace Dialog with ResponsiveDialog in ShareDialog component for improved UI consistency and responsiveness * refactor: replace Dialog with ResponsiveDialog in FigmaExportDialog component for improved UI consistency and responsiveness. - Use `Scrollarea` for cleaner scrollbar and structure it a bit different, so scrollbar's doesn't overflow beyond dialog. * refactor: replace Dialog with ResponsiveDialog in ThemeSaveDialog component for improved UI consistency and responsiveness * refactor: replace Dialog with ResponsiveDialog in PodcastEmptyPlaceholder component for improved UI consistency and responsiveness * refactor: replace Dialog with ResponsiveDialog in ChatImagePreview component for improved UI consistency and responsiveness * feat: add Tabs component based on BaseUI with customizable TabsList, TabsTrigger, TabsContent, and TabsIndicator for improved UI navigation * refactor: replace Dialog with ResponsiveDialog in CssImportDialog component for improved UI consistency and responsiveness * refactor: replace Dialog with ResponsiveDialog in AuthDialog component for improved UI consistency and responsiveness * refactor: replace Dialog with ResponsiveDialog in MCPDialog component for improved UI consistency and responsiveness - Replace `Tabs` component with new Base UI based `Tabs` component * refactor: update Tabs and Select components in CodePanel for improved UI consistency - Replace old Tabs component with new Base UI based Tabs component - Add TabsIndicator for enhanced visual feedback - Adjust SelectContent z-index for better layering * refactor: replace Dialog with ResponsiveDialog in CodePanelDialog component for improved UI consistency and responsiveness - fix: accessibility issue cased by missing title and description for dialog * refactor: replace Dialog with ResponsiveDialog in ContrastChecker component for improved UI consistency and responsiveness - Disable `Issues` button, when there's no issue - Sticky Header for each section for better messaging for each section especially on mobile * refactor: adjust layout and spacing in FigmaExportDialog for improved visual consistency - Update margin and padding for better alignment of elements - Remove unnecessary line breaks to streamline the code * refactor: adjust layout and spacing in GetProDialog and AIChatDemo components for improved visual consistency - Update positioning of elements in GetProDialog for better alignment - Remove unnecessary inset from AIChatDemo for cleaner layout * refactor: enhance layout in CodePanelDialog for improved responsiveness - Adjust max-height for better display on smaller screens - Maintain overall visual consistency with other dialog components * refactor: enhance CodePanel layout with additional ScrollBar orientations - Add horizontal and vertical ScrollBars for improved navigation within code panels - Adjust padding in CodePanelDialog for better spacing and visual consistency * refactor: clean up TabsIndicator component by removing commented code - Remove unnecessary commented-out code for better readability - Streamline TabsIndicator implementation for improved clarity * refactor: update ResponsiveDialog components to use isDesktop for breakpoint detection - Replace isMobile with isDesktop in ResponsiveDialog components for improved clarity - Ensure consistent behavior across dialog and drawer implementations based on desktop view * refactor: enhance ResponsiveDialogContent with additional props for customization (v1.4) update - Introduce closeButtonClassName and dragHandleClassName props for better styling control - Update context initialization to allow null values for improved type safety - Refactor ResponsiveDialogContent to streamline rendering logic and improve readability * refactor: reorganize imports and clean up AuthDialog component for improved readability - Rearranged import statements for better structure - Removed unnecessary props from ResponsiveDialogContent for cleaner layout - Enhanced overall code clarity and maintainability * refactor: reorganize imports in MCPDialog for improved clarity and consistency - Rearranged import statements for better structure - Cleaned up component imports to enhance readability - Maintained overall code organization for future maintainability * refactor: reorganize imports and enhance layout in various dialog components for improved readability - Cleaned up and rearranged import statements for better structure - Updated ResponsiveDialogContent and ResponsiveDialogHeader for consistent padding and spacing - Enhanced overall layout and visual consistency across multiple dialog components * refactor: add iOS detection to adjust repositioning of inputs in ResponsiveDialog | 1 年前 | |
feat(editor): use hex format for checking if a color is selected (#239) * chore: update package-lock.json * feat(editor): use hex format for checking if a color is selected | 8 个月前 | |
upgrade streamdown to v2 and fix chat theme preview height - Upgrade streamdown 1.0.11 → 2.4.0 with native streaming animation support - Use Streamdown's built-in isAnimating/animated props instead of custom typewriter - Remove useStreamText hook (replaced by Streamdown's native animation) - Simplify StreamText component to pass through to Streamdown directly - Add streamdown/styles.css import and Tailwind @source for class detection - Fix ChatThemePreview card height by overriding Card's default py-6/gap-6 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 5 个月前 | |
upgrade streamdown to v2 and fix chat theme preview height - Upgrade streamdown 1.0.11 → 2.4.0 with native streaming animation support - Use Streamdown's built-in isAnimating/animated props instead of custom typewriter - Remove useStreamText hook (replaced by Streamdown's native animation) - Simplify StreamText component to pass through to Streamdown directly - Add streamdown/styles.css import and Tailwind @source for class detection - Fix ChatThemePreview card height by overriding Card's default py-6/gap-6 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> | 5 个月前 | |
replace contents with tweakcn-next | 1 年前 | |
AI theme generation just got 10x better (#165) * feat: Add polar for tweakcn-plus checkout * migrate to polar nextjs for more control * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add checkout link support * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * refactor: follow naming convention * chore: refactor components and layout/pages for consistency * fix: enforce auth checks or redirect in /settings routes * chore: update Go Pro dialog * refactor: create reusable theme toggle component * feat: add Get Pro dialog to header * chore: rename GoPro dialog to GetPro and update imports * feat: add AI generation section to Home page and adjust Get Pro dialog * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * refactor: follow naming convention * chore: refactor components and layout/pages for consistency * fix: enforce auth checks or redirect in /settings routes * chore: update Go Pro dialog * refactor: create reusable theme toggle component * feat: add Get Pro dialog to header * chore: rename GoPro dialog to GetPro and update imports * feat: add AI generation section to Home page and adjust Get Pro dialog * feat: Add customer portal * feat: add chat input draft persistence (not images) * styles: improve styles for ai generation and alert banner defaults * feat: Send whole chat context to AI * fix: silly typo lol * feat: support images persistence and sync * feat: edit message (text, mentions and images) * fix: add eslint-disable for exhaustive-deps warnings * chore: fix build error & improve text and styles in suggested prompts * refactor: handle session and subscription checks and handle post login actions * migrate to turbopack * refactor: use reducer builder pattern to sync ai-draft-store with image-uploader * fix: ai-usage computation: account for abort * feat: Theme limit handling for pro tier * refactor: remove duplicate code from ai-chat-form and chat-input * feat: Add faq to pricing page * fix: /dashboard navigations -> /settings * feat: update ui for success page * feat: Migrate ai chat and draft message store to idb-keyval * feat: move subscription details in-house * generate migration * fix: build err * styles: improve Message UI * fix: allow scroll in GoPro dialog chat preview * feat: improve AI usage feedback when theme generation when success or failure * feat: Message UI enhancement when assistant message is error feedback * feat: add latest features in /ai page and refactor Core Theme Generation logic hooks * styles: improve styles and layout for consistency * styles: improve styles in settings pages for consistency * cancelled theme doesn't cost requests * update next to latest (for turbopack compat) * fail build if polar webhook secret is not set * update polar sdk and nextjs plugin * feat: Create customer before creating checkout for them * chore: save closable chat suggestions state as a preference in local storage * chore: improve color contrast in user UI message * feat: add pro features components * chore: update TextArea styles * feat: adjust theme generation types, functions and API to support adding an image * feat: AI components now support and display images * feat: add support for multiple images * feat: add support for multiple images to components * feat: support image only prompts and clean up API code * add ai-usage schema and actions * feat: dashboard: add AI usage stats with bar chart * feat: enforce subscription limits and improved error handling for AI theme generation * feat: Integrate alert-banner with actual usage * fix: pricing navigation * feat: Checkout link generation * feat: add quick action to create a theme from an image in ai page * feat: add drag and drop for images * chore: move Image Upload constant vars and update imports * feat: improve feedback while theme is being generated * feat: Add pricing page UI * refactor: Dashboard migration to Settings page * feat: improve pricing page * feat: add auth check in checkout and refactor implementation for consistency and typesafety * refactor: adjust code and API to follow new types and useQuery hook typesafety * refactor: alert banner displays correctly and uses the new subscription hook * feat: improve UI feedback for Pro users * feat: upload images by pasting (cmd/crtl + v) * feat: add Go Pro dialog, and global store (no implemented in app yet) * chore(WIP): scaffold of Pro subscription modal show logic * feat: Add openProModal logic to handleGenerateTheme in chat-interface * refactor: follow naming convention * chore: refactor components and layout/pages for consistency * fix: enforce auth checks or redirect in /settings routes * chore: update Go Pro dialog * refactor: create reusable theme toggle component * feat: add Get Pro dialog to header * chore: rename GoPro dialog to GetPro and update imports * feat: add AI generation section to Home page and adjust Get Pro dialog * feat: Add customer portal * feat: add chat input draft persistence (not images) * styles: improve styles for ai generation and alert banner defaults * feat: Send whole chat context to AI * fix: silly typo lol * feat: support images persistence and sync * feat: edit message (text, mentions and images) * fix: add eslint-disable for exhaustive-deps warnings * chore: fix build error & improve text and styles in suggested prompts * refactor: handle session and subscription checks and handle post login actions * migrate to turbopack * refactor: use reducer builder pattern to sync ai-draft-store with image-uploader * fix: ai-usage computation: account for abort * feat: Theme limit handling for pro tier * refactor: remove duplicate code from ai-chat-form and chat-input * feat: Add faq to pricing page * fix: /dashboard navigations -> /settings * feat: update ui for success page * feat: Migrate ai chat and draft message store to idb-keyval * feat: move subscription details in-house * generate migration * fix: build err * styles: improve Message UI * fix: allow scroll in GoPro dialog chat preview * feat: improve AI usage feedback when theme generation when success or failure * feat: Message UI enhancement when assistant message is error feedback * feat: add latest features in /ai page and refactor Core Theme Generation logic hooks * styles: improve styles and layout for consistency * styles: improve styles in settings pages for consistency * cancelled theme doesn't cost requests * update next to latest (for turbopack compat) * fail build if polar webhook secret is not set * update polar sdk and nextjs plugin * feat: Create customer before creating checkout for them --------- Co-authored-by: Luis Llanes <luisllaboj@gmail.com> | 1 年前 | |
Feature/save (#41) * setup drizzle with better-auth * switch to turso * chore: better auth migrations * feat: add basic signin signup auth * update form uis * remove emailAndPassword * loading state for auth btns * add theme routes and save function * migrate to actions * feat: Add dashboard page to view saved themes * hook up delete theme functionality * minor improvements * feat(auth): add AuthDialogWrapper and integrate with existing components * setup post login action to open save modal after login * refactor action bar * refactor * add ability to open theme by id * Use URL param for themeId * feat(editor): improve theme loading and add theme editing actions component * feat(theme): implement theme editing functionality with routing updates * refactor: move to try-catch * remove unused files for auth and theme routes * fix build errors * modify copies * add theme limit | 1 年前 |
以下内容由 AI 翻译,如有问题请 点此提交 issue 反馈
tweakcn 是一款功能强大的 tailwind CSS 和 shadcn/ui 组件可视化主题编辑器。它提供精美的主题预设帮助您快速上手,同时致力于为 UI 的各个方面提供高级自定义选项。

开发动机
使用 shadcn/ui 构建的网站往往外观雷同。tweakcn 是一款帮助您可视化自定义 shadcn/ui 组件的工具,让您的组件脱颖而出。我们的目标是打造一个平台,让用户能够探索无尽的自定义选项,并能融入自己的独特风格。
当前功能
完整功能列表请参见:https://tweakcn.com/#features
本地运行
重要提示:如需贡献代码,请参阅 CONTRIBUTING.md。
前置要求
- Node.js 18+
- npm / yarn / pnpm
安装步骤
- 克隆仓库:
git clone https://github.com/jnsahaj/tweakcn.git
cd tweakcn
- 安装依赖:
npm install
- 启动开发服务器:
npm run dev
- 在浏览器中打开 http://localhost:3000。
贡献者
使用 contrib.rocks 制作。
有兴趣参与贡献吗?
欢迎贡献!请随时提交 Pull Request。
星标历史
项目介绍
一款面向 shadcn/ui 组件的直观无代码编辑器【此简介由AI生成】
Apache-2.0 TSX764提交数shadcnshadcn-themeshadcn-theme-editorshadcn-uitailwindcsstailwindcss-v4typescript应用react
定制我的领域