unified
twin.macro
unified | twin.macro | |
---|---|---|
14 | 57 | |
4,250 | 7,805 | |
1.1% | - | |
7.2 | 5.9 | |
12 days ago | 28 days ago | |
JavaScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
unified
-
No CMS? Writing Our Blog in React
From TFA:
> My idea was that surely it's possible to write a bunch of markdown, and then have that get wrapped in a bunch of JSX tags that come pre-styled, using the styles of your existing repo? For example, what I expected was to be able to write *test* (Markdown for bold) and then get a component that looked liketest where is a library-defined React component
It surely is possible, so perhaps I can share some links if others are wondering the same thing.
If you like to roll your own solution for that, you can use the unified ecosystem: https://unifiedjs.com/
However, if you want JSX just do what everyone does and reach for MDX:
-
The hustle free way to build a next.js blog with dev.to
Styling the blog, figure out the eco-system within UnifiedJs, remark-rehype, oh boy, I could write another blog with that.
-
building a basic markdown editor: unified, trees and data
To build the Markdown editor (and the preview, mostly), I decided to use unified, an ecosystem of tools allowing the developer to parse a format into an abstract tree and back into another format (for example, markdown to html) and modify said tree (for example, to add specific classes to certain html elements before they are converted to an actual html string. The basics of how to do so can be found in this article, but they mostly consist of:
- Content as structured data, Compile content to syntax trees and vice versa
-
HTML to React service
It’ll take you a few hours to become proficient in the “unified” syntax tree libraries. So worth it. Easy fully customized conversion to/from html, react, plain text, markdown, you name it. https://unifiedjs.com/
-
Universal compiler using WASM architecture
Why universal? Because a lot of languages are simillar in a bunch of ways and it might be good to reuse existing parts of the compiler to speed up the process of writing new DSLs for example. Also a pretty big use-case is not for compilers itself but just for transformers like Markdown to HTML, there are already a lot of libraries (like https://github.com/unifiedjs/unified for ASTs and https://tree-sitter.github.io/tree-sitter/ for parsing) that try achieve similar goals but they are not working together.
-
Converting and customizing Markdown files to HTML with Unified, remark & rehype
Unified is a framework to process Markdown. It's a plugin-based tool that allows you to inspect and modify the way Markdown is converted to other formats like HTML.
-
Wrighter (β) - A Powerful Markdown Blogger & A Writing Companion ⚡
under the hood, the markdown is parsed by the unified remark and rehype processors, which in turn under the hood manipulate the markdown + HTML as an AST, which gives a lot of flexibility on parsing and rendering markdown. The editor uses them as plugins, which allows me to pick the features and inject them into the editor, one such injectable feature is the custom-made "copy from anywhere & paste as markdown" feature.
-
Building React Components from headless CMS markdown
Having the flexibility to create custom React Components for markdown is essential and with react-markdown, we can achieve this in just a few lines of code. Boosting performance, increasing link security, and having overall increased capabilities for our markdown data are what we achieve here. Aside from the improvements within our application, this component is super easy to use and taps us into the unifiedjs (giving us superpowers!).
-
I create my own homepage!
The Markdown processor used unified assets.
twin.macro
-
Tailwindcss in Styled-Components
Twin Macro Github Repo. This is a great resource to help you pick up Twin’s syntax, learn more about the package, and keep up to date with the latest releases.
-
CSS Style Guide for Web Dev?
Personally I like twin.macro the most. It’s similar to the above but based on Tailwind.
-
Cool Tailwindcss Tools For Everyone
twin.macro is a library that allows you to use these styles in your JavaScript code. This library works exactly like styled-components.
- How do you css?
-
Fixing Class Composition in Tailwind CSS
One of the more promising alternatives is twin.macro - a Babel macro that processes Tailwind classes to generate JS objects understandable by various CSS-in-JS libraries. The developer experience (DX) of using it is amazing as you not only get all of Tailwind’s features without much change to your code, but you also get much more flexibility - all that on top of the traditional benefits of CSS-in-JS. Here’s an example code:
-
Setup Nextjs Tailwind CSS Styled Components with TypeScript
twin.macro
-
What unpopular webdev opinions do you have?
If you use Tailwind with React a lot, and are wanting support for Styled Components, give Twin Macro a look. They're close to finishing support for TW v3 in their Releases section :)
- Are utility classes horrible design or am I dumb?
- What's the proper way to write Tailwind with React?
-
Stailwc: an swc plugin for transpiling tailwind directives at compile time
The blocker for us using it is our use of an excellent library called twin.macro which is built against babel's transpilation APIs to parse tailwindcss directives at compile time so that they may be used with css-in-js libraries. This efficiently bundles your css so that you only ship the precise css you use. The problem is, it's all quite slow.
What are some alternatives?
mdx - Markdown for the component era
twind - The smallest, fastest, most feature complete Tailwind-in-JS solution in existence.
uniorg - An accurate Org-mode parser for JavaScript/TypeScript
Tailwind CSS - A utility-first CSS framework for rapid UI development.
orgajs - parse org-mode content into AST
tailwindcss-classnames - Functional typed classnames for TailwindCSS
retext - natural language processor powered by plugins part of the @unifiedjs collective
jest-styled-components - 🔧 💅 Jest utilities for Styled Components
ntast - Notion Abstract Syntax Tree specification.
vue-emotion - Seamlessly use emotion (CSS-in-JS) with Vue.js
unist - Universal Syntax Tree used by @unifiedjs
tailwind-safelist-generator - Tailwind plugin to generate purge-safe.txt files