From cec57b495255c10ec57b5e76a828c9bd9f8734f6 Mon Sep 17 00:00:00 2001 From: 43081j <43081j@users.noreply.github.com> Date: Sun, 10 Dec 2023 15:28:23 +0000 Subject: [PATCH 1/3] feat(lit-dev-content): add lit-with-tailwind guide This adds a guide for using tailwind (and similar libraries) with lit components. For now, using the older import assertions proposal since esbuild doesn't yet support import attributes out of the box it seems. --- .../lit-dev-content/site/_data/authors.json | 10 + .../articles/article/lit-with-tailwind.md | 228 ++++++++++++++++++ .../site/images/authors/james-garbutt.jpg | Bin 0 -> 19485 bytes 3 files changed, 238 insertions(+) create mode 100644 packages/lit-dev-content/site/articles/article/lit-with-tailwind.md create mode 100644 packages/lit-dev-content/site/images/authors/james-garbutt.jpg diff --git a/packages/lit-dev-content/site/_data/authors.json b/packages/lit-dev-content/site/_data/authors.json index 69c41c872..1f26561c5 100644 --- a/packages/lit-dev-content/site/_data/authors.json +++ b/packages/lit-dev-content/site/_data/authors.json @@ -59,5 +59,15 @@ "image": { "url": "authors/elliott-marquez.webp" } + }, + "james-garbutt": { + "name": "James Garbutt", + "links": { + "twitter": "43081j", + "github": "43081j" + }, + "image": { + "url": "authors/james-garbutt.jpg" + } } } diff --git a/packages/lit-dev-content/site/articles/article/lit-with-tailwind.md b/packages/lit-dev-content/site/articles/article/lit-with-tailwind.md new file mode 100644 index 000000000..b9fb6bfea --- /dev/null +++ b/packages/lit-dev-content/site/articles/article/lit-with-tailwind.md @@ -0,0 +1,228 @@ +--- +title: Lit components with tailwind styles +publishDate: 2023-12-10 +lastUpdated: 2023-12-10 +summary: Using tailwind styles inside Lit components +tags: + - web-components + - tailwind + - css +eleventyNavigation: + parent: Articles + key: Lit with tailwind + order: 0 +author: + - james-garbutt +--- + +Tailwind and many other CSS libraries were not designed with web components in +mind, and come with some non-obvious difficulties when trying to use them in +such a codebase. + +This is a brief guide on how to use such a library with your Lit components. + +## Why tailwind doesn't work out of the box + +Out of the box, tailwind basically provides some global CSS classes and injects +the associated CSS at build time (via postcss). + +This conflicts with how web components work, since each web component has its +own natively scoped stylesheet rather than inherting any global styles. This +is why Tailwind will not be much use to us without further setup. + +## Overview of solution + +To solve the gaps tailwind comes with, we will: + +- Inject tailwind styles into regular CSS files +- Use [import attributes](https://github.com/tc39/proposal-import-attributes) +to import those CSS files +- Use [esbuild](https://github.com/evanw/esbuild) to pull those CSS files +into the bundle or same output directory + +## Initial setup + +To begin, we need the following dependencies for our build: + +- `esbuild` for bundling our code and carry our CSS files across (via imports) +- `postcss` for injecting tailwind styles +- `tailwindcss` for tailwind itself (postcss plugin) + +We can install these like so: + +```sh +npm install -D esbuild postcss postcss-cli tailwindcss +``` + +In our case, we are going to use `postcss-cli` for processing our CSS files. If +you use rollup or another bundler already, you may be able to use a postcss +plugin instead. + +## Using CSS imports + +When creating components, we want to use +[import attributes](https://github.com/tc39/proposal-import-attributes) to +import our CSS files rather than embedding CSS in our sources. + +**However, at the time of writing this article, the new `with` syntax is not +fully supported**. Temporarily, we still have to use the old `assert` syntax, +until esbuild implements full support for the new standard. + +We can do this like so: + +```ts +import myElementStyles from './my-element.css' assert {type: 'css'} + +class MyElement extends LitElement { + static styles = myElementStyles; + + render() { + return html` + I am italic tailwind text + `; + } +} +``` + +As you can see, we want to our `my-element.css` file to contain tailwind +mixins, and we want to use the resulting classes in our element's `render` +method. + +The CSS file (`my-element.css`) would look like this: + +```css +@tailwind base; +@tailwind utilities; + +/* other custom CSS here */ +``` + +We will then use tailwind to replace those mixins with CSS, including only +the styles our `render` method referenced. + +## Configuring tailwind and postcss + +Before we run our build, we need to configure tailwind and postcss. + +In our `tailwind.config.js`, we can write: + +```ts +/** @type {import('tailwindcss').Config} */ +export default { + content: [ + './src/**/*.ts' + ], + theme: { + extend: {}, + }, + plugins: [], +} +``` + +In our case, our sources are TypeScript, so we have the initial `@type` comment +to give us auto-completion for the object's properties. + +The rest of this file is straight forward. The important part is `content`, +specifying where our sources are so tailwind can detect which classes we have +used. + +In our `postcss.config.js`, we simply want to tell postcss to use tailwind +as a plugin: + +```ts +export default { + plugins: { + tailwindcss: {} + } +}; +``` + +## Build scripts + +We're going to do a few steps in our build: + +1. Bundle our sources (TypeScript in this case, including our CSS imports) +2. Apply tailwind styles to the build output in-place + +To do this, we can use an npm script: + +```json +{ + "scripts": { + "build:js": "esbuild --format=esm --bundle --loader:.css=copy --outfile=bundle.js src/main.ts", + "build:css": "postcss -r \"./*.css\"", + "build": "npm run build:js && npm run build:css" + } +} +``` + +You can see the magic here in our `build:js` script is esbuild's `--loader` +option, which we have set to `.css=copy`. This basically means any CSS files we +import via an ESM import statement will be copied across to the same directory +as the esbuild JS output (`bundle.js` in our case). + +So if we import `my-element.css`, we will expect two files in our directory: + +- `my-element.css` (probably under another name, using esbuild's chunk naming) +- `bundle.js` + +Finally, the `build:css` script then _replaces_ (via the `-r` flag) those CSS +files with copies which now have the tailwind styles injected. + +## Run it! + +We now have a `build` script! You can run this via `npm run build` and should +see two new files appear as mentioned before. + +## Expressions in styles (dynamic styles) + +You may have noticed one thing we have lost by having our CSS in external +files: we can no longer template variables into our CSS like so: + +```ts +static styles = css` + .foo { + color: ${dynamicColourDefinedInJs}; + } +`; +``` + +There are many challenges in supporting this usage and still passing it through +tailwind. For this reason, **it is not recommended**. + +Instead, in places we really need to do this, we should use CSS variables or +do the computation statically at build-time (replace values in our CSS at +build time). + +To solve this with CSS variables, we can do the following: + +`my-element.css`: + +```css +.foo { + color: var(--foo-color); +} +``` + +`my-element.ts`: + +```ts +static styles = [ + css` + :host { + --foo-color: ${dynamicColour}; + } + `, + myElementStyles +]; +``` + +The initial `styles` entry in this case is only being used for setting the +values of some CSS variables, and never used for actual styling. We can then +reference those variables in our external CSS files. + +## Example + +An example repository very similar to this guide is available here: + +https://github.com/43081j/tailwind-lit-example diff --git a/packages/lit-dev-content/site/images/authors/james-garbutt.jpg b/packages/lit-dev-content/site/images/authors/james-garbutt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..934f9f876ac797b77cca37a03c4a2bff8d63a75d GIT binary patch literal 19485 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

(`GvG%s+P1b% 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 Date: Tue, 12 Dec 2023 19:42:06 +0000 Subject: [PATCH 2/3] chore: update wording --- .../site/articles/article/lit-with-tailwind.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/lit-dev-content/site/articles/article/lit-with-tailwind.md b/packages/lit-dev-content/site/articles/article/lit-with-tailwind.md index b9fb6bfea..cdc7c51a3 100644 --- a/packages/lit-dev-content/site/articles/article/lit-with-tailwind.md +++ b/packages/lit-dev-content/site/articles/article/lit-with-tailwind.md @@ -27,7 +27,7 @@ Out of the box, tailwind basically provides some global CSS classes and injects the associated CSS at build time (via postcss). This conflicts with how web components work, since each web component has its -own natively scoped stylesheet rather than inherting any global styles. This +own natively scoped stylesheet rather than inheriting any global styles. This is why Tailwind will not be much use to us without further setup. ## Overview of solution @@ -84,7 +84,7 @@ class MyElement extends LitElement { } ``` -As you can see, we want to our `my-element.css` file to contain tailwind +As you can see, we want our `my-element.css` file to contain tailwind mixins, and we want to use the resulting classes in our element's `render` method. @@ -119,11 +119,9 @@ export default { } ``` -In our case, our sources are TypeScript, so we have the initial `@type` comment -to give us auto-completion for the object's properties. - -The rest of this file is straight forward. The important part is `content`, -specifying where our sources are so tailwind can detect which classes we have +Tailwind [configuration](https://tailwindcss.com/docs/configuration) can be +modified to fit your use case. The important part is for `content` to specify +where our component sources are so tailwind can detect which classes we have used. In our `postcss.config.js`, we simply want to tell postcss to use tailwind From 64e9dcbe5b94f5035caa1c908443d8fd936764b2 Mon Sep 17 00:00:00 2001 From: 43081j <43081j@users.noreply.github.com> Date: Tue, 2 Jan 2024 19:37:41 +0000 Subject: [PATCH 3/3] chore: add an image --- .../site/articles/article/lit-with-tailwind.md | 1 + .../site/images/articles/lit_with_tailwind.jpg | Bin 0 -> 79963 bytes 2 files changed, 1 insertion(+) create mode 100644 packages/lit-dev-content/site/images/articles/lit_with_tailwind.jpg diff --git a/packages/lit-dev-content/site/articles/article/lit-with-tailwind.md b/packages/lit-dev-content/site/articles/article/lit-with-tailwind.md index cdc7c51a3..51080fba1 100644 --- a/packages/lit-dev-content/site/articles/article/lit-with-tailwind.md +++ b/packages/lit-dev-content/site/articles/article/lit-with-tailwind.md @@ -3,6 +3,7 @@ title: Lit components with tailwind styles publishDate: 2023-12-10 lastUpdated: 2023-12-10 summary: Using tailwind styles inside Lit components +thumbnail: /images/articles/lit_with_tailwind tags: - web-components - tailwind diff --git a/packages/lit-dev-content/site/images/articles/lit_with_tailwind.jpg b/packages/lit-dev-content/site/images/articles/lit_with_tailwind.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a7292b410e2575c8a245e1edfbe9670831d8cdad GIT binary patch literal 79963 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