Hands-On Guide to Color Fonts and “@ font-palette-values” (zor/css) | | 1,591 |
videos, guides, css, fonts |
Secure JavaScript URL Validation (sny) | | 1,590 |
javascript, validation, urls, security |
Forging Successful Partnerships With Software Developers (uxm) | | 1,589 |
collaboration, design |
The Wasted Potential of CSS Attribute Selectors | | 1,588 |
css, attributes, selectors, bem |
Next.js Crash Course | | 1,587 |
videos, crash-courses, nextjs |
Why We’re Breaking Up With CSS-in-JS | | 1,586 |
css, javascript, css-in-js |
Don’t Be Arrogantly Ignorant: Don’t Flame | | 1,585 |
career, communication |
How to Rebase Stacked Git Branches | | 1,584 |
how-tos, git |
Moving From React to htmx | | 1,583 |
migrating, react, htmx |
Introduction to WebC (5t3) | | 1,582 |
introductions, webc |
New Brutalism and Web Accessibility: What You Need to Know (uxd) | | 1,581 |
design, accessibility |
Accessibility Checkers—a Good Start, Not a Solution | | 1,580 |
accessibility, testing, tooling |
Design for Them Not for You | | 1,579 |
videos, design, usability |
Container Queries: Style Queries (bra) | | 1,578 |
css, container-queries |
Scoop: Meta Ending Support for Instant Articles | | 1,577 |
facebook+meta, support |
Microfrontends: Microservices for the Frontend | | 1,576 |
micro-frontends, microservices |
Utility Framework UnoCSS | | 1,575 |
unocss, presentational-css, css |
Why You Should Prefer Using pnpm Over npm and Yarn? | | 1,574 |
pnpm, npm, yarn, comparisons |
CDN (htt) | | 1,573 |
web-almanac, studies, research, metrics, performance, content-delivery, tooling |
Augmenting Node.js With WebAssembly (nea) | | 1,572 |
videos, nodejs, webassembly |
What I Learned About SVG Accessibility (Among Other Things) From NBC News’ Senate “What If” Project | | 1,571 |
accessibility, svg, images, lessons |
Upgrading Colors to HD on the Web (bra) | | 1,570 |
css, colors |
Two JavaScripts (rem) | | 1,569 |
javascript |
Some Things I Took Away From an Event Apart 2022 in Denver (geo/css) | | 1,568 |
web, accessibility, css |
Should We Hire Junior Developer Advocates? (bla) | | 1,567 |
hiring, advocacy, developer-relations, dei |
Intro to Why Accessibility Is Important for Good SEO (deq) | | 1,566 |
introductions, accessibility, seo |
A Pure CSS Gallery Focus Effect With “:not” (css) | | 1,565 |
css, selectors |
The Web’s Next Transition (ken) | | 1,564 |
web-apps, multi-page-apps, single-page-apps, progressive-enhancement |
How to Animate CSS Box Shadows and Optimize Performance | | 1,563 |
how-tos, css, animations, shadows, performance |
Design Specifications Template (uxd) | | 1,562 |
design, templates |
Speeding Up Async Snippets (css) | | 1,561 |
performance, javascript, asynchronicity |
Representation in “alt” Text (aar) | | 1,560 |
accessibility, dei, writing |
Early Days of Container Style Queries (geo/css) | | 1,559 |
css, container-queries |
Create a Passkey for Passwordless Logins (age/dev) | | 1,558 |
authentication, security, passkeys |
Bun? Deno? Node.js? Creating Your Own JavaScript Runtime Using V8, Libuv, and More | | 1,557 |
videos, javascript, runtimes, v8 |
Quick Tip: How to Use the Ternary Operator in JavaScript | | 1,556 |
how-tos, javascript, operators, tips-and-tricks |
Tree Views in CSS (kat) | | 1,555 |
css |
The Border Property You Never Knew You Needed (kev) | | 1,554 |
videos, css |
Sustainable Web Development Strategies Within an Organization (mic/sma) | | 1,553 |
sustainability, performance, optimization |
HTML 2022: 20 Additional Observations From Analyzing the Web Almanac Data (j9t) | | 1,552 |
html, metrics, web-almanac |
WCAG 2.2 Success Criteria | | 1,551 |
accessibility, wcag |
Challenges of Multi-Brand Design Systems (uxd) | | 1,550 |
design-systems, branding, theming |
Landing the Second Click: A Guide to Designing Better Landing Pages (uxd) | | 1,549 |
guides, design, landing-pages, user-conversion |
A Little Semantic HTML Trick for React Components | | 1,548 |
react, html, semantics, components, tips-and-tricks |
:where :is CSS? | | 1,547 |
css, selectors |
When New CSS Features Collide: Possibility and Complexity at the Intersections (rac) | | 1,546 |
slides, css, complexity, interoperability |
SVG Sprites: Old-School, Modern, Unknown, and Forgotten (pep) | | 1,545 |
svg, images, sprites, performance |
New Patterns for Amazing Apps (tom/dev) | | 1,544 |
web-apps |
How to Write Good Alt Text (cfe) | | 1,543 |
how-tos, accessibility, writing, alt-text, images |
Delightful UI Animations With Shared Element Transitions API II (cod/sma) | | 1,542 |
javascript, animations, transitions, apis |
Turn Around Your Git Mistakes in 17 Ways | | 1,541 |
git, productivity, mistakes |
Usability Heuristic Frameworks: Which One Is Right for You? (uxd) | | 1,540 |
usability, research |
Personas: Study Guide | | 1,539 |
guides, personas, usability, training, link-lists |
Understanding “async” and “await” | | 1,538 |
javascript, asynchronicity |
2022 Web Almanac Report Finds WordPress Adoption Is Growing, Adds New Page Builder Data (sar) | | 1,537 |
studies, research, web-almanac, wordpress, content-management |
Prioritizing Technical Debt With Hotspots | | 1,536 |
videos, technical-debt, visualization, prioritization |
Layout Breakouts With CSS Grid | | 1,535 |
css, grids, layout |
4 Required Tests Before Shipping New Features (5t3) | | 1,534 |
accessibility, testing |
A Short Story of the Google Error Page (j9t) | | 1,533 |
history, google, error-pages |
Debugging CSS, No Extensions Required (kev) | | 1,532 |
videos, css, debugging, browsers, browser-extensions |
WordPress.org Plugin Developers Demand Transparency Regarding the Removal of Active Install Growth Data (sar) | | 1,531 |
wordpress, plugins, metrics |
The Future of the Web Is on the Edge (den) | | 1,530 |
deno, edge-computing |
Five Months Worth of Takes on the Digital Accessibility Space | | 1,529 |
accessibility, testing, tooling |
The Future of Rendering in React | | 1,528 |
react, client-side-rendering, server-side-rendering |
Awesome Tools for Open Source Contributions | | 1,527 |
tooling, foss, documentation |
How to Safely Pass Data to JavaScript in a Django Template | | 1,526 |
how-tos, javascript, django |
Unless You’re in the Mafia, Your Company Isn’t Your Family (cod) | | 1,525 |
career |
How to Safely Share Your Email Address on a Website (css) | | 1,524 |
how-tos, communication, email |
How to Optimize Resource Loading With the “fetchpriority” Attribute (deb) | | 1,523 |
how-tos, html, performance, optimization |
Adding Components to Eleventy With WebC (zac) | | 1,522 |
eleventy, components, webc |
Foundations: HTML Semantics (tet) | | 1,521 |
accessibility, fundamentals, html, semantics |
Quick Tip: How to Use the Spread Operator in JavaScript | | 1,520 |
how-tos, javascript, operators, tips-and-tricks |
Using Web Components With Next (or Any SSR Framework) (css) | | 1,519 |
web-components, nextjs, server-side-rendering |
Use “npm query” and jq to Dig Into Your Dependencies | | 1,518 |
videos, npm, dependencies, auditing |
Patching the Open Web (jim) | | 1,517 |
open-web |
Front-End Development Is Like… (geo) | | 1,516 |
career |
Easy Fluid Typography With “clamp()” Using Sass Functions (uti/sma) | | 1,515 |
fluid-design, typography, css, sass, functions |
AI Code Completion Is Like Cruise Control—and That’s Great News for Bigger Teams (cod) | | 1,514 |
ai, code-completion, productivity, collaboration |
CSS Halftone Patterns (mic) | | 1,513 |
css, effects |
Four Ways to Pick the Right UX Method | | 1,512 |
user-experience, research |
Can Consistency Harm Your Product? (uxd) | | 1,511 |
design, consistency |
One Formula to Rule Them All: The ROI of a Design System (uxd) | | 1,510 |
design-systems |
The Missing Math Methods in JavaScript | | 1,509 |
javascript, math |
Designing a Secure API | | 1,508 |
software-design, apis, security |
Component-Level Design Tokens: Are They Worth It? | | 1,507 |
design-tokens, components |
Where Are the Accessibility Statements? Digital Accessibility Shouldn’t Be a Surprise (deq) | | 1,506 |
accessibility, documentation |
When Going Somewhere Does a Thing: On Links and Buttons (kil) | | 1,505 |
accessibility, html, links, buttons, semantics |
CSS Grid vs. Flexbox: How to Decide (With Examples) (ell) | | 1,504 |
css, grids, flexbox, layout, comparisons, examples |
A CSS Class-Naming Convention Might Still Be Your Best Choice (ben) | | 1,503 |
css, naming, conventions |
3 Things to Consider Before You Implement CAPTCHA for Accessibility (uxd) | | 1,502 |
accessibility, captcha |
Jenkins Best Practices Every Developer Must Know | | 1,501 |
jenkins, best-practices |
Minimalism as Narcissism | | 1,500 |
minimalism |
CSS-Only Type Grinding: Casting Tokens Into Useful Values | | 1,499 |
css, design-tokens |
Mobile UX Design in 2022 (uxm) | | 1,498 |
user-experience, mobile, design |
The Difference Between “undefined” and “not defined” in JavaScript | | 1,497 |
javascript |
I Turned JS Into a Compiled Language (for Fun and Wasm) (sur) | | 1,496 |
javascript, compiling, webassembly |
I Changed My Mind About Writing New JavaScript Frameworks (whi) | | 1,495 |
javascript, frameworks |
Delightful UI Animations With Shared Element Transitions API (cod/sma) | | 1,494 |
javascript, animations, transitions, apis |
Busting the Myths About Agile Development and User Research (uxm) | | 1,493 |
agile, user-experience, research, myths |
A Beginner’s Complete Guide to Form Accessibility: The 5 Things Accessible Forms Need and How to Fix Common Errors (pop) | | 1,492 |
guides, accessibility, forms |
Phylum Detects Active Typosquatting Campaign Targeting npm Developers | | 1,491 |
npm, dependencies, security |
Ten Years of TypeScript (typ) | | 1,490 |
typescript |
What Is Website Minimalism? | | 1,489 |
minimalism, design |
Software Engineering Practices (sim) | | 1,488 |
best-practices, documentation, testing, migrating, formatting, environments, automation |
How to Scale SVG (ame/css) | | 1,487 |
how-tos, scaling, svg, images |
Learn Accessibility (dev) | | 1,486 |
courses, accessibility |
A Web Component Story | | 1,485 |
web-components, design-systems |
depngn | | 1,484 |
packages, npm, nodejs, dependencies |
Why UX? | | 1,483 |
videos, user-experience |
Templating in HTML (kit) | | 1,482 |
html, javascript |
Optimize Long Tasks (mal/dev) | | 1,481 |
performance, javascript, optimization |
Getting Started With WordPress Block Development (css) | | 1,480 |
wordpress, introductions |
Choosing the Best Node.js Docker Image (lir/sny) | | 1,479 |
nodejs, docker |
Building Delight in Your Design System (lur/zer) | | 1,478 |
design-systems, user-experience |
State of CSS 2022 (sac+/dev) | | 1,477 |
surveys, css |
How to Center a Div Using CSS Grid | | 1,476 |
how-tos, css, grids, centering |
Yes, Accessibility Is Also a Backend Concern (eri) | | 1,475 |
accessibility |
Why You Should Care About Design in Uncertain Times (uxd) | | 1,474 |
design |
Intersectionality, Accessibility, and Inclusion (int) | | 1,473 |
videos, accessibility, dei |
“:has()” Opens Up New Possibilities With CSS (kev) | | 1,472 |
videos, css, selectors |
CSS Selectors—Cheat Sheet for Class, Name, Child Selector List (fre) | | 1,471 |
css, selectors, examples, cheat-sheets |
Getting the Power of Vim in WebStorm and Other JetBrains IDEs (jet) | | 1,470 |
code-editors, jetbrains, webstorm, vi+vim |
Let Me Understand How JavaScript Works Under the Hood | | 1,469 |
javascript |
How to Make Your Designs Scannable (and Why You Should) (web) | | 1,468 |
how-tos, design, usability |
Websites Need to Be Accessible to Be Inclusive | | 1,467 |
accessibility, dei |
This Site’s Type Is Now Variable (ell) | | 1,466 |
typography, fonts, variable-fonts, css |
Performance Budgets: The Easiest Way to a Faster Site (fox/cal) | | 1,465 |
performance, performance-budgets |
How to Return Multiple Values From a Function in JavaScript (ami) | | 1,464 |
how-tos, javascript, functions |
GIFs Without the .gif: The Most Performant Image and Video Options Right Now (oll/css) | | 1,463 |
performance, multimedia, images, gif, html |
Don’t Worry, Nobody Is Replacing Node, Not Even Bun and Even Less Deno | | 1,462 |
nodejs, bun, deno |
Useful JavaScript Math Functions and How to Use Them | | 1,461 |
javascript, math, functions |
Closing a 30 Pixel Gap Between Native and Web (pat) | | 1,460 |
web-apps, browsers, web, native |
A Deep Dive Into WCAG 2.2—and Beyond (yat) | | 1,459 |
podcasts, accessibility, wcag, deep-dives |
Named Element IDs Can Be Referenced as JavaScript Globals (css) | | 1,458 |
javascript, html |
Learn HTML (est/dev) | | 1,457 |
courses, html |
Five Data-Loading Patterns to Boost Web Performance (sma) | | 1,456 |
performance |
Dear Console… (cod) | | 1,455 |
console, javascript |
7 Things to Consider When Working On a Personal Project | | 1,454 |
career, learning |
The New Wave of JavaScript Web Frameworks | | 1,453 |
javascript, frameworks, react, vuejs, svelte, solidjs |
Security (lir+/htt) | | 1,452 |
web-almanac, studies, research, metrics, security |
Page Weight (htt) | | 1,451 |
web-almanac, studies, research, metrics, performance |
JavaScript (mal/htt) | | 1,450 |
web-almanac, studies, research, metrics, javascript |
Accessibility (htt) | | 1,449 |
web-almanac, studies, research, metrics, accessibility |
CMS (htt) | | 1,448 |
web-almanac, studies, research, metrics, content-management |
Sustainability (htt) | | 1,447 |
web-almanac, studies, research, metrics, sustainability |
Media (htt) | | 1,446 |
web-almanac, studies, research, metrics, multimedia, images |
SEO (htt) | | 1,445 |
web-almanac, studies, research, metrics, seo |
Fonts (htt) | | 1,444 |
web-almanac, studies, research, metrics, fonts |
HTTP (htt) | | 1,443 |
web-almanac, studies, research, metrics, http, protocols |
Markup (j9t/htt) | | 1,442 |
web-almanac, studies, research, metrics, html |
Interoperability (bka/htt) | | 1,441 |
web-almanac, studies, research, metrics, interoperability |
I Am Not That Excited About New CSS Features (cit) | | 1,440 |
css |
How to Get All Sibling Elements of a Link or Button With Vanilla JavaScript (cfe) | | 1,439 |
how-tos, links, buttons, javascript |
How to Create Wavy Shapes and Patterns in CSS (css/css) | | 1,438 |
how-tos, css, effects |
CSS (rac/htt) | | 1,437 |
web-almanac, studies, research, metrics, css |
6+5 Ways to Make a Two-Column Layout: From Pretty Reasonable to Completely Wrong (pep) | | 1,436 |
layout, css |
100 Days of More or Less Modern CSS (mat) | | 1,435 |
css |
K-Means Clustering Visualization Using D3.js | | 1,434 |
visualization, javascript |
Continue Using .env Files as Usual | | 1,433 |
environments, security |
Two Things I Learned by Validating My HTML Again | | 1,432 |
html, conformance, lessons |
Streamable HTML Fragments (dev) | | 1,431 |
html, streaming |
Audience-Based Website Navigation | | 1,430 |
videos, usability, navigation |
Writing Composable SQL Using JavaScript | | 1,429 |
javascript, databases, sql |
Blind People Need to Be Considered More When Making Data Visualizations | | 1,428 |
accessibility, information-design |
Testing Web Design Color Contrast (arg/dev) | | 1,427 |
testing, colors, contrast |
Randomness in CSS | | 1,426 |
css, randomness |
The Indisputable Truth About Accessibility | | 1,425 |
videos, accessibility |
A Designer’s Guide to Documenting Accessibility (ste) | | 1,424 |
videos, design, accessibility, documentation |
Things I Wish I Had Known About Angular When I Started (sma) | | 1,423 |
angular |
Attitudes to Digital Accessibility Survey 2022 | | 1,422 |
surveys, accessibility, dei |
Use Cases for CSS Comparison Functions (sha) | | 1,421 |
css, functions |
Top Task Analysis: Make It Fast and Efficient (boa) | | 1,420 |
processes |
Speedy CSS Tip! Animated Loader (jhe/dev) | | 1,419 |
css, tips-and-tricks |
Quick Reminder: HTML5 “required” and “pattern” Are Not a Security Feature (cod) | | 1,418 |
html, forms, security |
Creative Section Breaks Using CSS “clip-path” (zor/css) | | 1,417 |
videos, css, masking, clipping |
Inspect and Modify CSS Animation Effects (pat+) | | 1,416 |
browsers, microsoft, edge, dev-tools, css, animations, debugging |
Will Serving Real HTML Content Make a Website Faster? Let’s Experiment! | | 1,415 |
studies, research, html, performance |
Element Timing: One True Metric to Rule Them All? (spe) | | 1,414 |
performance, apis, metrics |
Rest vs. Spread Syntax in JavaScript (ami) | | 1,413 |
javascript, comparisons |
Designing Better Inline Validation UX (vit/sma) | | 1,412 |
forms, validation, user-experience |
5 Ways That UX Developers Influence SEO (web) | | 1,411 |
user-experience, seo |
A “details” Element as a Burger Menu Is Not Accessible (ger/clo) | | 1,410 |
html, disclosure-widgets, semantics, accessibility |
The Web Is Good Now (chr) | | 1,409 |
videos, web |
Type-Level TypeScript | | 1,408 |
websites, typescript |
How to Generate Random Numbers in JavaScript With “Math.random()” | | 1,407 |
how-tos, javascript, math, randomness |
React I Love You, but You’re Bringing Me Down | | 1,406 |
react |
Making Your Web Pages Printer-Friendly With CSS (cra) | | 1,405 |
css, print |
Why Designers Quit (uxd) | | 1,404 |
design, career |
Shell Scripting With Node.js (rau) | | 1,403 |
books, nodejs, shell |
Prototyping to Learn (dav) | | 1,402 |
prototyping, learning |
It’s Good to Make Mistakes (tem) | | 1,401 |
accessibility, design, mistakes |
CSS Rules vs. CSS Rulesets (lou) | | 1,400 |
css, comparisons |
Container Queries Are Going to Change How We Make Layouts (kev) | | 1,399 |
videos, css, container-queries, layout |
Clarifying Color Contrast and Font Size Guidelines (mar) | | 1,398 |
accessibility, colors, contrast, readability |
Accessibility Is Systemic (ada) | | 1,397 |
accessibility |
Stop Using .env Files Now | | 1,396 |
environments, security |
Web Sustainability and the Ethical Dilemma (mic) | | 1,395 |
sustainability, ethics, web |
How Rapid Usability Testing Is Changing UX Research (uxm) | | 1,394 |
usability, user-experience, research, testing |
Rethinking a Design System | | 1,393 |
design-systems |
How to Get the Current Timestamp in JavaScript | | 1,392 |
how-tos, javascript |
Design 4.0: Leading Design in the New Industry (uxd) | | 1,391 |
design |
CSS Drawings (alv) | | 1,390 |
css, art |
Building a Retro Draggable Web Component With Lit (and/sma) | | 1,389 |
web-components, javascript |
5 Ways to Use Data Visualization in Your Content to Increase Traffic (uxm) | | 1,388 |
visualization, content, traffic, optimization |
Accidental Dismissal of Overlays: A Common Mobile Usability Problem | | 1,387 |
usability, mobile, overlays |
Debunking Myths About HTTPS | | 1,386 |
http, security, myths |
The Git Commands I Use Every Day | | 1,385 |
git, command-line |
When Design Systems Lie (css) | | 1,384 |
videos, design-systems |
How to (Not) Make a Button | | 1,383 |
how-tos, accessibility, buttons, semantics, html |
Accessibility Is for Every One | | 1,382 |
accessibility |
Brief Note on Super- and Subscript Text (aar) | | 1,381 |
html, accessibility, support, assistive-tech |
Total Blocking Time: A Short and Sweet Guide for Happier Users (ben/cal) | | 1,380 |
performance, javascript |
7 Must Know JavaScript Tips and Tricks | | 1,379 |
javascript, tips-and-tricks |
Designing for People With Cognitive Disabilities and Everyone Else | | 1,378 |
videos, accessibility, design |
Why the Number Input Is the Worst Input | | 1,377 |
html, forms, validation, accessibility |
The Rise of the TikTok Pattern (uxd) | | 1,376 |
design, social-media |
Accessibility in Times of Headless (sma) | | 1,375 |
accessibility, content-management, headless |
Design Tokens 101 | | 1,374 |
design-tokens |
How to Substantially Slow Down Your Node.js Server | | 1,373 |
how-tos, performance, nodejs |
Why Are Vanity Metrics Still Problematic? (uxd) | | 1,372 |
metrics |
Let’s Get Logical (ada) | | 1,371 |
css, logical-properties |
Invalid CSS (cit) | | 1,370 |
css, conformance |
I Never Thought This Would Be Possible With CSS (kev) | | 1,369 |
videos, css, selectors |
Five Things You Can Do to Be More Inclusive (dbo) | | 1,368 |
dei, accessibility |
Buttons and the Baader–Meinhof Phenomenon (mat) | | 1,367 |
buttons, accessibility |
Quick Tip: Embedding YouTube Videos in GitHub Pages (cod) | | 1,366 |
embed-code, youtube, social-media, github-pages, tips-and-tricks |
A Guide to Rounding Numbers in JavaScript | | 1,365 |
guides, javascript |
When Is It OK to Disable Text Selection? (css) | | 1,364 |
css, usability, accessibility |
W3C TAG Ethical Web Principles | | 1,363 |
ethics, principles, w3c |
3 Problems Scrum Doesn’t Solve | | 1,362 |
agile, scrum, processes |
The State of Digital Accessibility: Three Key Challenges (moz) | | 1,361 |
accessibility, legal, web |
Secure Your Node.js App With JSON Web Tokens (app) | | 1,360 |
nodejs, json-web-tokens, security |
On Better Browsers: Arbitrary Media Queries and Browser UIs (kil) | | 1,359 |
css, media-queries, accessibility |
JavaScript APIs You Don’t Know About (mon/sma) | | 1,358 |
javascript, apis |
Container Queries in Browsers! (mia) | | 1,357 |
css, container-queries, support |
Intrinsic CSS With Container Queries and Units (mia) | | 1,356 |
videos, intrinsic-design, css, container-queries, units |
Detecting CSS Selector Support (mic) | | 1,355 |
css, selectors, support, feature-detection |
The Basics of Remix (css) | | 1,354 |
fundamentals, frameworks, remix |
Making Sense of WAI–ARIA: A Comprehensive Guide (sma) | | 1,353 |
guides, accessibility, aria, html |
Node.js Native Binary Compilation Using Vercel pkg | | 1,352 |
nodejs, compiling, vercel |
Wtf Is an Island and Why Is It in My Website? | | 1,351 |
frameworks, html, architecture, concepts |
Disability Is Not a Dirty Word | | 1,350 |
accessibility, communication |
First Batch of Color Fonts Arrives on Google Fonts | | 1,349 |
google, fonts, typography, colors |
What Is Data Engineering? (ger) | | 1,348 |
concepts, data-engineering |
The Power of CSS Blend Modes (spa/clo) | | 1,347 |
css, blend-modes |
PureComponents vs. Functional Components With Hooks (ade) | | 1,346 |
react, components, hooks, comparisons |
Conditionally Spreading Objects in JavaScript (ami) | | 1,345 |
javascript, objects |
Better Accessible Names (hdv) | | 1,344 |
accessibility, naming |
The Seventh Way to Call a JavaScript Function Without Parentheses | | 1,343 |
javascript, functions |
Nuclear Footnotes (mey) | | 1,342 |
html, css |