41554 blogs · [ { "id": "01a07d5d-7d9e-73a6-8506-9bb0f3ded2cf", "title": "The best dark mode toggle is probably none", "url": "https://lea.verou.me/blog/2026/dark-mode-toggles-2/", "published_at": "2026-09-02T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0f35ebb76", "title": "Dark mode toggles: two states are enough", "url": "https://lea.verou.me/blog/2026/dark-mode-toggles/", "published_at": "2026-08-06T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0f32b6c47", "title": "In defense of polyfills", "url": "https://lea.verou.me/blog/2026/polyfills/", "published_at": "2026-07-13T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0f29e771e", "title": "External import maps, today!", "url": "https://lea.verou.me/blog/2026/external-import-maps-today/", "published_at": "2026-03-02T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0f1ac075a", "title": "Web dependencies are broken. Can we fix them?", "url": "https://lea.verou.me/blog/2026/web-deps/", "published_at": "2026-01-07T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0f171c805", "title": "In the economy of user effort, be a bargain, not a scam", "url": "https://lea.verou.me/blog/2025/user-effort/", "published_at": "2025-09-29T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0f0ee8ae7", "title": "State of HTML 2025 now open!", "url": "https://lea.verou.me/blog/2025/state-of-html/", "published_at": "2025-07-22T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0f0918103", "title": "Influence the State of HTML 2025 Survey!", "url": "https://lea.verou.me/blog/2025/design-state-of-html/", "published_at": "2025-07-08T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0efacae66", "title": "The Hovercar Framework for Deliberate Product Design", "url": "https://lea.verou.me/blog/2025/hovercar/", "published_at": "2025-06-25T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0eed95454", "title": "Bluesky Likes Web Components", "url": "https://lea.verou.me/blog/2025/bluesky-likes/", "published_at": "2025-06-17T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0eeb11912", "title": "Construction Lines", "url": "https://lea.verou.me/blog/2025/construction-lines/", "published_at": "2025-06-13T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0ee22932b", "title": "Style-observer: JS to observe CSS property changes, for reals", "url": "https://lea.verou.me/blog/2025/style-observer/", "published_at": "2025-02-12T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0edee3bec", "title": "Context Chips in Survey Design: “Okay, but how does it _feel_?”", "url": "https://lea.verou.me/blog/2024/context-chips/", "published_at": "2024-12-27T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0ed1df7ca", "title": "Web Components are not Framework Components — and That’s Okay", "url": "https://lea.verou.me/blog/2024/wcs-vs-frameworks/", "published_at": "2024-10-01T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0ec389ec2", "title": "Making the Web more Awesome — for everyone", "url": "https://lea.verou.me/blog/2024/awesome/", "published_at": "2024-09-16T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0ec26fca9", "title": "Forget “show, don’t tell”. Engage, don’t show!", "url": "https://lea.verou.me/blog/2024/engage-dont-show/", "published_at": "2024-07-03T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0eb6a3992", "title": "Inline conditionals in CSS, now?", "url": "https://lea.verou.me/blog/2024/css-conditionals-now/", "published_at": "2024-06-21T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0ea9a6d4c", "title": "Inline conditionals in CSS?", "url": "https://lea.verou.me/blog/2024/css-conditionals/", "published_at": "2024-06-18T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e9e9fe06", "title": "On compliance vs readability: Generating text colors with CSS", "url": "https://lea.verou.me/blog/2024/contrast-color/", "published_at": "2024-05-17T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e90bb2cb", "title": "Eigensolutions: composability as the antidote to overfit", "url": "https://lea.verou.me/blog/2023/eigensolutions/", "published_at": "2023-12-19T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e8d736bb", "title": "Minimalist Affordances: Making the right tradeoffs", "url": "https://lea.verou.me/blog/2023/minimalist-affordances/", "published_at": "2023-11-02T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e7df9edd", "title": "State of HTML 2023 now open!", "url": "https://lea.verou.me/blog/2023/state-of-html-2023/", "published_at": "2023-09-22T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e7951d24", "title": "Numbers or Brackets for numeric questions?", "url": "https://lea.verou.me/blog/2023/numbers-vs-brackets/", "published_at": "2023-08-03T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e6e05da6", "title": "Help Design the Inaugural State of HTML Survey!", "url": "https://lea.verou.me/blog/2023/design-state-of-html/", "published_at": "2023-07-26T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e5fc089e", "title": "Going Lean", "url": "https://lea.verou.me/blog/2023/going-lean/", "published_at": "2023-07-21T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e5c10c7b", "title": "Rethinking Categorization", "url": "https://lea.verou.me/blog/2023/rethinking-categorization/", "published_at": "2023-07-20T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e5328641", "title": "11ty: Index ALL the things!", "url": "https://lea.verou.me/blog/2023/11ty-indices/", "published_at": "2023-07-19T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e4582254", "title": "Migrating Disqus from WP to 11ty", "url": "https://lea.verou.me/blog/2023/preserve-disqus/", "published_at": "2023-07-18T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e3deb704", "title": "JS private class fields considered harmful", "url": "https://lea.verou.me/2023/04/private-fields-considered-harmful/", "published_at": "2023-04-28T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e3b2d8be", "title": "Contrast Ratio has a new home — and this is great news!", "url": "https://lea.verou.me/2023/03/contrast-ratio-new-home/", "published_at": "2023-03-18T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e393e8b4", "title": "Position Statement for the 2022 W3C TAG Election", "url": "https://lea.verou.me/2022/11/tag-2/", "published_at": "2022-11-07T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e2c04bfa", "title": "State of CSS 2022 now open!", "url": "https://lea.verou.me/2022/10/state-of-css-2022-now-open/", "published_at": "2022-10-03T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e1d2f439", "title": "On ratings and meters", "url": "https://lea.verou.me/2022/08/on-ratings-and-meters/", "published_at": "2022-08-12T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e1ac4761", "title": "Help design the State of CSS Survey 2022!", "url": "https://lea.verou.me/2022/07/help-design-the-state-of-css-survey-2022/", "published_at": "2022-07-28T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e0b9d1f4", "title": "What is the best way to mark up an exclusive button group?", "url": "https://lea.verou.me/2022/07/button-group/", "published_at": "2022-07-14T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0e09de5c9", "title": "Introducing Rety: live coding, without the stress", "url": "https://lea.verou.me/2022/07/rety/", "published_at": "2022-07-13T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0dfe05f7b", "title": "Releasing Color.js: A library that takes color seriously", "url": "https://lea.verou.me/2022/06/releasing-colorjs/", "published_at": "2022-06-29T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0df5537fa", "title": "On Yak Shaving and ``, a new HTML element for Markdown", "url": "https://lea.verou.me/2021/11/on-yak-shaving-and-md-block-an-html-element-for-markdown/", "published_at": "2021-11-26T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0dec07f12", "title": "Custom properties with defaults: 3+1 strategies", "url": "https://lea.verou.me/2021/10/custom-properties-with-defaults/", "published_at": "2021-10-15T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0ddca8164", "title": "Inherit ancestor font-size, for fun and profit", "url": "https://lea.verou.me/2021/06/inherit-ancestor-font-size-for-fun-and-profit/", "published_at": "2021-06-24T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0dd17c1eb", "title": "Is the current tab active?", "url": "https://lea.verou.me/2021/05/is-the-current-tab-active/", "published_at": "2021-05-24T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0dc916e96", "title": "82% of developers get this 3 line CSS quiz wrong", "url": "https://lea.verou.me/2021/05/82-of-developers-get-this-3-line-css-quiz-wrong/", "published_at": "2021-05-21T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0dc4f6591", "title": "Dark mode in 5 minutes, with inverted lightness variables", "url": "https://lea.verou.me/2021/03/inverted-lightness-variables/", "published_at": "2021-03-30T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0dbce350e", "title": "Mass function overloading: why and how?", "url": "https://lea.verou.me/2021/02/mass-function-overloading-why-and-how/", "published_at": "2021-02-10T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0db502e6f", "title": "Writable getters", "url": "https://lea.verou.me/2020/12/writable-getters/", "published_at": "2020-12-23T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0db0941c5", "title": "Position Statement for the 2020 W3C TAG Election", "url": "https://lea.verou.me/2020/11/tag/", "published_at": "2020-11-30T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0dac74c51", "title": "The case for Weak Dependencies in JS", "url": "https://lea.verou.me/2020/11/the-case-for-weak-dependencies-in-js/", "published_at": "2020-11-19T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0da0b5d0b", "title": "Simple pie charts with fallback, today", "url": "https://lea.verou.me/2020/11/simple-pie-charts-with-fallback-today/", "published_at": "2020-11-12T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d97703ef", "title": "The -​-var: ; hack to toggle multiple values with one custom property", "url": "https://lea.verou.me/2020/10/the-var-space-hack-to-toggle-multiple-values-with-one-custom-property/", "published_at": "2020-10-12T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d951688e", "title": "The failed promise of Web Components", "url": "https://lea.verou.me/2020/09/the-failed-promise-of-web-components/", "published_at": "2020-09-24T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d8a082c5", "title": "Developer priorities throughout their career", "url": "https://lea.verou.me/2020/09/developer-priorities-throughout-their-career/", "published_at": "2020-09-16T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d7d3bf67", "title": "Parsel: A tiny, permissive CSS selector parser", "url": "https://lea.verou.me/2020/09/parsel-a-tiny-permissive-css-selector-parser/", "published_at": "2020-09-07T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d762a41a", "title": "Introspecting CSS via the CSS OM: Get supported properties, shorthands, longhands", "url": "https://lea.verou.me/2020/07/introspecting-css-via-the-css-om-getting-supported-properties-shorthands-longhands/", "published_at": "2020-07-27T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d6a75cfc", "title": "Import non-ESM libraries in ES Modules, with client-side vanilla JS", "url": "https://lea.verou.me/2020/07/import-non-esm-libraries-in-es-modules-with-client-side-vanilla-js/", "published_at": "2020-07-20T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d64bf44e", "title": "Releasing MaVoice: A free app to vote on repo issues", "url": "https://lea.verou.me/2020/07/releasing-mavoice-a-free-app-to-vote-on-repo-issues/", "published_at": "2020-07-11T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d63bb6ea", "title": "The Cicada Principle, revisited with CSS variables", "url": "https://lea.verou.me/2020/07/the-cicada-principle-revisited-with-css-variables/", "published_at": "2020-07-07T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d5f8ccaa", "title": "Refactoring optional chaining into a large codebase: lessons learned", "url": "https://lea.verou.me/2020/06/refactoring-optional-chaining-into-a-large-codebase-lessons-learned/", "published_at": "2020-06-18T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d54c9f91", "title": "Hybrid positioning with CSS variables and max()", "url": "https://lea.verou.me/2020/06/hybrid-positioning-with-css-variables-and-max/", "published_at": "2020-06-05T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d498fb61", "title": "New decade, new theme", "url": "https://lea.verou.me/2020/06/new-decade-new-theme/", "published_at": "2020-06-03T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d3db3c0d", "title": "Today's Javascript, from an outsider's perspective", "url": "https://lea.verou.me/2020/05/todays-javascript-from-an-outsiders-perspective/", "published_at": "2020-05-25T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d3be7afc", "title": "LCH colors in CSS: what, why, and how?", "url": "https://lea.verou.me/2020/04/lch-colors-in-css-what-why-and-how/", "published_at": "2020-04-04T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d39fce3e", "title": "Issue closing stats for any repo", "url": "https://lea.verou.me/2019/12/issue-closing-stats-for-any-repo/", "published_at": "2019-12-13T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d3460b17", "title": "Utility: Convert SVG path to all-relative or all-absolute commands", "url": "https://lea.verou.me/2019/05/utility-convert-svg-path-to-all-relative-or-all-absolute-commands/", "published_at": "2019-05-06T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d332bea8", "title": "ReferenceError: x is not defined?", "url": "https://lea.verou.me/2018/12/referenceerror-x-is-not-defined/", "published_at": "2018-12-14T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d2d4c3b3", "title": "Refresh CSS Bookmarklet v2", "url": "https://lea.verou.me/2018/09/refresh-css-bookmarklet-v2/", "published_at": "2018-09-18T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d2bdd51e", "title": "Easy Dynamic Regular Expressions with Tagged Template Literals and Proxies", "url": "https://lea.verou.me/2018/06/easy-dynamic-regular-expressions-with-tagged-template-literals-and-proxies/", "published_at": "2018-06-04T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d22e7bf1", "title": "Never forget type=\"button\" on generated buttons!", "url": "https://lea.verou.me/2018/05/never-forget-typebutton-on-generated-buttons/", "published_at": "2018-05-19T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d1908e86", "title": "Responsive tables, revisited", "url": "https://lea.verou.me/2018/05/responsive-tables-revisited/", "published_at": "2018-05-14T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d14501df", "title": "Quicker Storify export", "url": "https://lea.verou.me/2018/04/quicker-storify-export/", "published_at": "2018-04-27T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0d08edfc8", "title": "Free Intro to Web Development slides (with demos)", "url": "https://lea.verou.me/2018/02/free-intro-to-web-development-slides-with-demos/", "published_at": "2018-02-20T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cfab558e", "title": "Different remote and local resource URLs, with Service Workers!", "url": "https://lea.verou.me/2017/10/different-remote-and-local-resource-urls-with-service-workers/", "published_at": "2017-10-30T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cf45776b", "title": "Introducing Mavo: Create web apps entirely by writing HTML!", "url": "https://lea.verou.me/2017/05/introducing-mavo-create-web-apps-entirely-by-writing-html/", "published_at": "2017-05-16T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cf33613f", "title": "HTML APIs: What they are and how to design a good one", "url": "https://lea.verou.me/2017/02/html-apis-what-they-are-and-how-to-design-a-good-one/", "published_at": "2017-02-16T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cf2fd7df", "title": "Duoload: Simplest website load comparison tool, ever", "url": "https://lea.verou.me/2017/02/duoload-simplest-website-load-comparison-tool-ever/", "published_at": "2017-02-03T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cf25963b", "title": "Resolve Promises externally with this one weird trick", "url": "https://lea.verou.me/2016/12/resolve-promises-externally-with-this-one-weird-trick/", "published_at": "2016-12-14T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cea5c007", "title": "URL rewriting with Github Pages", "url": "https://lea.verou.me/2016/11/url-rewriting-with-github-pages/", "published_at": "2016-11-26T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0ce6e3577", "title": "Autoprefixing, with CSS variables!", "url": "https://lea.verou.me/2016/09/autoprefixing-with-css-variables/", "published_at": "2016-09-07T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cdafbb9e", "title": "Markapp: A list of HTML libraries", "url": "https://lea.verou.me/2016/08/markapp-a-list-of-html-libraries/", "published_at": "2016-08-26T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cd13d9e4", "title": "Introducing Multirange: A tiny polyfill for HTML5.1 two-handle sliders", "url": "https://lea.verou.me/2016/05/introducing-multirange-a-tiny-polyfill-for-html5-two-handle-sliders/", "published_at": "2016-05-31T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0ccc7c601", "title": "My positive experience as a woman in tech", "url": "https://lea.verou.me/2015/12/my-positive-experience-as-a-woman-in-tech/", "published_at": "2015-12-17T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0ccbd2ac2", "title": "Introducing Bliss: A 3KB library for happier Vanilla JS", "url": "https://lea.verou.me/2015/12/introducing-bliss-a-3kb-library-for-happier-vanilla-js/", "published_at": "2015-12-04T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cc5bc6d2", "title": "Copying object properties, the robust way", "url": "https://lea.verou.me/2015/08/copying-properties-the-robust-way/", "published_at": "2015-08-16T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cc441b58", "title": "On the blindness of blind reviews", "url": "https://lea.verou.me/2015/08/on-the-blindness-of-blind-reviews/", "published_at": "2015-08-13T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cbc5c094", "title": "Stretchy: Form element autosizing, the way it should be", "url": "https://lea.verou.me/2015/07/stretchy-form-element-autosizing-the-way-it-should-be/", "published_at": "2015-07-26T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cbb8fff2", "title": "Spot the unsubscribe (link)!", "url": "https://lea.verou.me/2015/07/spot-the-unsubscribe-link/", "published_at": "2015-07-14T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cb6a13e5", "title": "Conical gradients, today!", "url": "https://lea.verou.me/2015/06/conical-gradients-today/", "published_at": "2015-06-18T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0cae75171", "title": "Idea: Extending native DOM prototypes without collisions", "url": "https://lea.verou.me/2015/04/idea-extending-native-dom-prototypes-without-collisions/", "published_at": "2015-04-20T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0ca5b13e1", "title": "jQuery considered harmful", "url": "https://lea.verou.me/2015/04/jquery-considered-harmful/", "published_at": "2015-04-19T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c96eca9e", "title": "Awesomplete: 2KB autocomplete with zero dependencies", "url": "https://lea.verou.me/2015/02/awesomplete-2kb-autocomplete-with-zero-dependencies/", "published_at": "2015-02-19T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c90aab68", "title": "An easy notation for grayscale colors", "url": "https://lea.verou.me/2014/07/an-easy-notation-for-grayscale-colors/", "published_at": "2014-07-27T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c813d468", "title": "Image comparison slider with pure CSS", "url": "https://lea.verou.me/2014/07/image-comparison-slider-with-pure-css/", "published_at": "2014-07-25T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c786b014", "title": "Dynamically generated SVG through SASS + A 3D animated RGB cube!", "url": "https://lea.verou.me/2014/04/dynamically-generated-svg-through-sass-a-3d-animated-rgb-cube/", "published_at": "2014-04-04T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c725167f", "title": "I’m going to MIT!!", "url": "https://lea.verou.me/2014/02/im-going-to-mit/", "published_at": "2014-02-11T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c71c47c5", "title": "Introducing Whathecolor: A color game for web developers!", "url": "https://lea.verou.me/2014/02/whathecolor-a-color-game-for-web-developers/", "published_at": "2014-02-08T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c6749d70", "title": "Vote for me in the net awards 2014!", "url": "https://lea.verou.me/2014/01/vote-for-me-in-the-net-awards-2014/", "published_at": "2014-01-30T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c5e46778", "title": "Smooth state animations with animation-play-state", "url": "https://lea.verou.me/2014/01/smooth-state-animations-with-animation-play-state/", "published_at": "2014-01-09T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c559ba6b", "title": "Simple script: Automatic talks list", "url": "https://lea.verou.me/2013/12/simple-script-automatic-talks-list/", "published_at": "2013-12-28T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c547a558", "title": "CSS is for developers", "url": "https://lea.verou.me/2013/12/css-is-for-developers/", "published_at": "2013-12-05T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c4bd8d33", "title": "Cleanest CSS spinner, ever", "url": "https://lea.verou.me/2013/11/cleanest-css-spinner-ever/", "published_at": "2013-11-29T00:00:00+00:00" }, { "id": "01a07d5d-7d9e-73a6-8506-9bb0c40dc3b0", "title": "Flexible Google-style loader with CSS", "url": "https://lea.verou.me/2013/11/flexible-google-style-loader-with-css/", "published_at": "2013-11-11T00:00:00+00:00" } ] posts Claim your blog
Back to Lea Verou
Blog · corpus.blog/blogs/lea.verou.me/posts

Lea Verou

lea.verou.me

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013