Comments (6)
Hi Stewart,
You can change anything thanks to variants, however it is not possible to
do so directly in the config at the moment.
To do so, first define the fonts in your tailwind config
module.exports = {
theme: {
fontFamily: {
'roboto': ['roboto'],
'calibri': ['calibri'],
'rubik': ['rubik'],
}
}
}
Then switch them like that:
<html class="theme-light:font-roboto theme-dark:font-calibri
theme-halloween:font-rubik" >
Hope that helps!
from tw-colors.
I thought about this too, it feels like this concept could apply to pretty much all config properties and be a general theming engine. The suggested work-around is kind of something in between the current Tailwind approach and a more centralized theming system.
from tw-colors.
@mateuswolkmer
I don't plan on supporting anything else than colors in the plugin's config. However if you look in the config there is a resolveTwcConfig
export that you can use to create your own plugin. This way you get all the tw-colors features and you can add your own.
That said, here is how I would approach the spacing theming:
You can apply a multiplier variable to the spacing config
module.exports = {
theme: {
spacing: {
'1': 'calc(var(--multiplier) * 0.25rem)',
'2': 'calc(var(--multiplier) * 0.5rem)',
'3': 'calc(var(--multiplier) * 0.75rem)',
'4': 'calc(var(--multiplier) * 1rem )',
...
}
}
}
And update the multiplier based on the theme with variants:
class='theme-1:[--multiplier:_1] theme-2:[--multiplier:_1.5] theme-3:[--multiplier:_2]'
Or with CSS
.theme-1 {
--multiplier: 1;
}
.theme-2 {
--multiplier: 1.5;
}
.theme-3 {
--multiplier: 2;
}
from tw-colors.
Makes sense based on the package name! I will probably be making my own plugin for this then, thanks for pointing me to the right location. I'll post here if I open-source it.
I also like your implementation on multipliers, definitely makes it easier to change them based on theme, I'll experiment.
from tw-colors.
Thanks @L-Blondy - that worked great. I'm using a rails app and it wasn't happy with dynamically generating the classes, but once I hardcoded one for each them it worked like a charm!
@tderkert - agreed this is an awesome plugin, lots of potential.
from tw-colors.
Is there a currently way to achieve this globally? Using variants aren't enough in my case as I need to change sizing values based on themes, and it would be too troublesome adding it to every component (theme-1:p-4 theme-1:rounded-sm theme-2:p-6 theme-2:rounded-md
...). If not, I can help implementing if you think it fits the package @L-Blondy
from tw-colors.
Related Issues (20)
- how can use two different class one for dark and on for light in one element HOT 1
- Add default setting for neutral/duplicate color HOT 4
- Hoisting CSS variables to root? HOT 3
- make it work with class "light" instead of "theme-light" HOT 3
- tw-colors not working on nuxt's error.vue page , why ? HOT 3
- Variants without explicit theme declarations HOT 6
- color giving uninteded conversion HOT 3
- NativeWind support HOT 17
- In theme <theme> color "background". Unable to parse color from string: hsl(0 0% 0% / 10%) HOT 2
- TWC color variables not set when using important mode in tailwind HOT 3
- How to create Theme & Variants HOT 2
- 3.1.2 breaks my colors HOT 4
- Tailwind colors plugin defined colors don't work in portal HOT 10
- option to preserve hex values? HOT 2
- Reference custom color names in `createTheme` HOT 3
- color calculations result in different values than configured in theme HOT 1
- how to assign color to scss variable? HOT 3
- Allow referencing other CSS variables HOT 2
- Prefix option prevents CSS color variables generation in Tailwind CSS configuration HOT 3
- Typo in README.md HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tw-colors.