https://github.com/hmarzban/daisyui-matsu-theme
A Studio Ghibli inspired theme for DaisyUI - bringing the magical aesthetics of Ghibli films to your web projects with beautiful, whimsical components.
https://github.com/hmarzban/daisyui-matsu-theme
daisyui ghibli matsu react shadcn-ui tailwindcss theme ui-components vibe-coding
Last synced: 6 months ago
JSON representation
A Studio Ghibli inspired theme for DaisyUI - bringing the magical aesthetics of Ghibli films to your web projects with beautiful, whimsical components.
- Host: GitHub
- URL: https://github.com/hmarzban/daisyui-matsu-theme
- Owner: HMarzban
- License: mit
- Created: 2025-04-09T02:58:52.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-04-09T07:11:59.000Z (6 months ago)
- Last Synced: 2025-04-12T17:54:11.783Z (6 months ago)
- Topics: daisyui, ghibli, matsu, react, shadcn-ui, tailwindcss, theme, ui-components, vibe-coding
- Language: TypeScript
- Homepage: https://hmarzban.github.io/daisyui-matsu-theme/
- Size: 14.7 MB
- Stars: 26
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ✨ Matsu Theme for DaisyUI
Hey there! Welcome to **Matsu** - a magical Studio Ghibli inspired theme for DaisyUI that brings the whimsical charm of Ghibli films to your web projects! 🌿

## 🌟 What's This All About?
Matsu captures the enchanting spirit of Studio Ghibli's art style with:
- Soft watercolor textures that feel like hand-painted scenes
- Warm, earthy tones inspired by "My Neighbor Totoro," "Spirited Away," and "Howl's Moving Castle"
- Whimsical UI components that add a touch of magic to your projects
- A clean, modern design that's both functional and beautiful## 🔧 CLI Tool
**Add Matsu to your project in seconds:**
```bash
npx daisyui-matsu-theme
```That's it! The CLI automatically detects and configures your DaisyUI project.
[More CLI options →](./cli/README.md)
## Manual Installation
`globals.css`
Copy and paste the matsu theme to your project's globals.css file to install the theme with all variables and texture setup.```css
/* Add PT Serif font import for headings */
@import url("https://fonts.googleapis.com/css2?family=PT+Serif:wght@400;700&display=swap");
/* Add Nunito font import for body text */
@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;700&display=swap");@import "tailwindcss";
@plugin "daisyui";
@plugin "daisyui/theme" {
name: "matsu";
default: true; /* set as default */
prefersdark: false; /* set as default dark mode (prefers-color-scheme:dark) */
color-scheme: light; /* color of browser-provided UI *//* Base colors - mapping from shadcn */
--color-base-100: oklch(0.91 0.048 83.6); /* background */
--color-base-200: oklch(0.92 0.042 83.6); /* card/popover */
--color-base-300: oklch(0.86 0.064 83.7); /* muted */
--color-base-content: oklch(0.41 0.077 78.9); /* foreground *//* Primary colors */
--color-primary: oklch(0.71 0.097 111.7);
--color-primary-content: oklch(0.98 0.005 0);
--color-primary-focus: oklch(0.59 0.096 111.8); /* primary-border *//* Secondary colors */
--color-secondary: oklch(0.88 0.055 83.6);
--color-secondary-content: oklch(0.51 0.077 78.9);/* Accent colors */
--color-accent: oklch(0.86 0.055 83.6);
--color-accent-content: oklch(0.26 0.016 0);/* Neutral colors - for borders and subtle elements */
--color-neutral: oklch(0.74 0.063 80.8); /* border/input */
--color-neutral-content: oklch(0.51 0.077 74.3); /* ring/muted-foreground *//* Info colors - from chart colors */
--color-info: oklch(0.68 0.16 184.9); /* chart-2 */
--color-info-content: oklch(0.98 0.005 0);/* Success colors */
--color-success: oklch(0.85 0.19 85.4); /* chart-4 */
--color-success-content: oklch(0.98 0.005 0);/* Warning colors */
--color-warning: oklch(0.74 0.19 66.3); /* chart-5 */
--color-warning-content: oklch(0.98 0.005 0);/* Error colors - maps to destructive */
--color-error: oklch(0.63 0.24 29.2); /* destructive */
--color-error-content: oklch(0.97 0.018 0); /* destructive-foreground *//* border radius */
--radius-selector: 0.625rem; /* checkboxes, toggles, badges */
--radius-field: 0.625rem; /* buttons, inputs, selects, tabs */
--radius-box: 0.625rem; /* cards, modals, alerts *//* Base sizes */
--size-selector: 0.25rem;
--size-field: 0.25rem;/* Border size */
--border: 2px;/* Effects */
--depth: 1; /* For shadow effect - matsu uses custom shadow-primary */
--noise: 0;
}:root:has(input.theme-controller[value="matsu"]:checked),
[data-theme="matsu"] {
/* Typography */
--font: "Nunito", sans-serif;
--font-family: "Nunito", sans-serif;
--font-family-serif: "PT Serif", serif;
--font-weight-light: 700;
--font-weight-normal: 700;
--font-weight-medium: 700;
--font-weight-semibold: 700;
--font-weight-bold: 700;--primary-border: oklch(0.59 0.096 111.8);
--destructive: oklch(0.63 0.24 29.2);
--destructive-border: oklch(0.43 0.24 29.2);/* Shadows */
--shadow-xs: 0 2px 0 0 oklch(0.74 0.063 80.8);
--shadow-sm: 0 2px 0 0 oklch(0.74 0.063 80.8);
--shadow-md: 0 2px 0 0 oklch(0.74 0.063 80.8);
--shadow-lg: 0 2px 0 0 oklch(0.74 0.063 80.8);
--shadow-xl: 0 2px 0 0 oklch(0.74 0.063 80.8);body {
font-family: var(--font-family);
--tw-font-weight: var(--font-weight-bold);
font-weight: var(--font-weight-bold);
}/* Custom shadows from matsu theme */
.shadow-primary {
box-shadow: 0 2px 0 0 var(--color-primary-focus);
}.shadow-destructive {
box-shadow: 0 2px 0 0 var(--color-error);
}.shadow-destructive-border {
box-shadow: 0 2px 0 0 var(--color-error);
}/* Custom component styles to mimic matsu shadcn components */
.btn {
font-weight: 700;
gap: 0.5rem;
border-width: 2px;
background-size: 100% 100%;
transition: all 150ms;
}.btn-primary {
box-shadow: 0 2px 0 0 var(--color-primary-focus);
}.btn-error {
box-shadow: 0 2px 0 0 var(--color-error);
}/* Input with matsu style */
.input {
border-width: 2px;
font-weight: 500;
}/* Card with matsu style */
.card {
border-width: 2px;
}.card-title {
font-family: var(--font-family);
font-weight: 700;
}/* Alert with matsu style */
.alert {
border-width: 2px;
}.texture {
background-image: url(https://hmarzban.github.io/daisyui-matsu-theme/assets/texture.jpg);
background-size: 100% 100%;
background-repeat: repeat;
opacity: 0.12;
mix-blend-mode: multiply;
z-index: 100;
isolation: isolate;
position: fixed;
inset: 0;
width: 100vw;
height: 100dvh;
pointer-events: none;
}
}
````index.html`
Alternatively, you can simply add the data-theme="matsu" attribute to your HTML element like:```html
```
`layout.tsx`
Create a custom layout component in your project and wrap your pages with it to use the theme.```tsx
import React from "react";type prop = {
children: React.ReactNode;
};export default function Layout({ children }: prop) {
return (
{children}
);
}
```## 🙋♂️ How Can You Help?
### Feedback & Contributions
- **Found a bug?** [Open an issue](https://github.com/HMarzban/daisyui-matsu-theme/issues)
- **Have an idea?** Share it on [Twitter/X](https://x.com/mhossein_) or through issues
- **Want to contribute?** Fork, code, and submit a pull request
- **Like the project?** Star it and share with friendsYour support helps make this project better for everyone!
## 📄 License
Released under the MIT License - so you're free to create your own magic with it!