If you are not sure if the website you would like to visit is secure, you can verify it here. Enter the website address of the page and see parts of its content and the thumbnail images on this site. None (if any) dangerous scripts on the referenced page will be executed. Additionally, if the selected site contains subpages, you can verify it (review) in batches containing 5 pages.
favicon.ico: docs.joinmastodon.org/dev/frontend/css-and-styling - CSS and styling - Mastodon doc.

site address: docs.joinmastodon.org/dev/frontend/css-and-styling/ redirected to: docs.joinmastodon.org/dev/frontend/css-and-styling

site title: CSS and styling - Mastodon documentation

Our opinion (on Friday 03 July 2026 21:41:20 UTC):

GREEN status (no comments) - no comments
After content analysis of this website we propose the following hashtags:



Meta tags:
description=How to style components in the Mastodon frontend;

Headings (most frequently used words):

styling, css, and, background, how, to, use, modules, variants, sub, components, theming, sponsored, by,

Text of the page (most frequently used words):
the (21), and (18), admin (13), mastodon (11), css (11), for (9), your (9), use (8), classes (8), components (7), new (7), #styling (7), using (7), #modules (6), component (6), styles (6), module (6), this (5), scss (5), preferences (4), style (4), class (4), from (4), data (4), border (4), instance (4), profile (4), account (4), api (4), oauth (4), with (4), theming (3), tokens (3), you (3), sub (3), global (3), like (3), name (3), add (3), wrapper (3), variants (3), naming (3), files (3), how (3), search (3), apps (3), reports (3), accounts (3), setting (3), server (3), source (2), improve (2), our (2), more (2), theme (2), guide (2), design (2), need (2), that (2), can (2), prevent (2), create (2), avatar (2), based (2), has (2), hasborder (2), classname (2), section (2), classnames (2), one (2), will (2), multiple (2), access (2), actions (2), import (2), creating (2), folder (2), leaving (2), related (2), release (2), background (2), frontend (2), notificationpolicy (2), filter (2), report (2), quote (2), domainblock (2), notifications (2), trends (2), collections (2), domain_blocks (2), security (2), environment (2), implementing (2), posts (2), machine (2), installing (2), features (2), configuring (2), running (2), imprint, view, blog, join, sponsored, last, updated, may, 2026, page, colours, learn, about, user, legacy, wrap, turning, into, generated, avoid, possible, prefer, local, pass, nested, custom, attribute, markup, primary, color, var, solid, true, compose, utility, wrapperwithoutborder, take, two, approaches, generate, names, all, location, providing, stable, ish, hook, authors, should, kept, simple, there, bem, patterns, camelcase, words, make, easier, card, when, react, snake_case, file, note, suffix, out, being, imported, matching, subcomponent, component_name, decided, build, functionality, allows, defined, right, next, reduces, likelihood, conflicts, before, was, styled, these, often, grew, large, became, hard, navigate, change, without, unintended, side, effects, webpushsubscription, translation, token, termsofservice, tag, suggestion, statussource, statusedit, status, shallowtag, shallowquote, scheduledstatus, rule, role, relationshipseveranceevent, relationship, reaction, quoteapproval, privacypolicy, previewcardauthor, previewcard, poll, notificationrequest, notificationfallback, notification, mediaattachment, marker, list, identityproof, filterstatus, filterresult, filterkeyword, featuredtag, featureapproval, familiarfollowers, extendeddescription, error, customemoji, conversation, context, collectionwithaccounts, collectionitem, collection, asyncrefresh, application, appeal, annualreport, announcement, measure, ipblock, emaildomainblock, domainallow, dimension, cohort, canonicalemailblock, accountwarning, entities, streaming, markers, lists, conversations, timelines, scheduled_statuses, polls, media, statuses, proofs, oembed, push, directory, custom_emojis, announcements, health, grouped, async_refreshes, emails, annual, retention, measures, ip_blocks, email_domain_blocks, domain_allows, dimensions, canonical_email_blocks, tags, suggestions, mutes, followed_tags, follow_requests, filters, featured_tags, favourites, endorsements, bookmarks, blocks, methods, rate, limits, scopes, guidelines, best, practices, datetime, formats, rest, bearcaps, microformats, webfinger, activitypub, spec, compliance, reference, themes, state, management, issues, responsible, disclosure, routes, code, structure, dev, technical, overview, contributing, libraries, implementations, logging, obtaining, client, app, playing, public, getting, started, developing, roles, webhooks, database, index, corruption, troubleshooting, errors, moderation, scaling, migrating, backing, upgrading, cli, single, sign, captcha, onion, services, object, storage, optional, full, text, preparing, own, official, ios, android, moving, externally, settings, set, promoting, yourself, others, dealing, unwanted, content, quoting, other, network, posting, signing, what, documentation,


Text of the page (random words):
css and styling mastodon documentation what is mastodon using mastodon signing up for an account setting up your profile posting to your profile using the network features quoting other posts dealing with unwanted content promoting yourself and others set your preferences more settings using mastodon externally moving or leaving accounts official ios and android apps running your own server running mastodon preparing your machine installing from source configuring your environment configuring full text search installing optional features object storage onion services captcha single sign on setting up your new instance using the admin cli upgrading to a new release backing up your server migrating to a new machine scaling up your server moderation actions troubleshooting errors database index corruption webhooks roles developing mastodon apps getting started with the api playing with public data obtaining client app access logging in with an account libraries and implementations implementing quote posts implementing collections contributing to mastodon technical overview setting up a dev environment code structure routes security issues and responsible disclosure frontend guide components state management css and styling creating themes design tokens reference spec compliance activitypub webfinger security microformats oauth bearcaps rest api datetime formats guidelines and best practices oauth tokens oauth scopes rate limits api methods accounts blocks bookmarks domain_blocks endorsements favourites featured_tags filters follow_requests followed_tags mutes preferences reports suggestions tags admin accounts canonical_email_blocks dimensions domain_allows domain_blocks email_domain_blocks ip_blocks measures reports retention trends annual reports apps emails oauth async_refreshes collections grouped notifications health instance announcements custom_emojis directory trends notifications push oembed profile proofs search statuses media polls scheduled_statuses timelines conversations lists markers streaming api entities account accountwarning admin account admin canonicalemailblock admin cohort admin dimension admin domainallow admin domainblock admin emaildomainblock admin ip admin ipblock admin measure admin report announcement annualreport appeal application asyncrefresh collection collectionitem collectionwithaccounts context conversation customemoji domainblock error extendeddescription familiarfollowers featureapproval featuredtag filter filterkeyword filterresult filterstatus identityproof instance list marker mediaattachment notification notificationfallback notificationpolicy notificationrequest poll preferences previewcard previewcardauthor privacypolicy profile quote quoteapproval reaction relationship relationshipseveranceevent report role rule scheduledstatus search shallowquote shallowtag status statusedit statussource suggestion tag termsofservice token translation v1 filter v1 instance v1 notificationpolicy webpushsubscription css and styling how to style components in the mastodon frontend background how to use css modules styling variants styling sub components theming background before mastodon 4 6 mastodon s ui was styled using global scss files like components scss these files often grew large and became hard to navigate and change without unintended side effects to improve on this we decided to build the new functionality for the 4 6 release using css modules this allows styles to be defined right next to the related components and reduces the likelihood of style conflicts how to use css modules when creating a new react component create a new folder for it use snake_case naming and add a styles module scss file note the module suffix leaving it out will prevent the styles from being imported for multiple css files in one folder use component_name module scss matching the name of the related subcomponent import and use the styles in the component import classes from styles module scss the naming of classes in css modules should be kept simple e g card or actions there s no need for bem like naming patterns use camelcase for multiple words to make it easier to access the class in a component css modules will generate names for all classes in a module based on the location and module name providing a stable ish hook for theme authors styling variants to style component variants you can take one of two approaches compose classes using the classnames utility e g section classname classnames classes wrapper hasborder classes wrapperwithoutborder add a custom data attribute to the component markup and add styles based on that e g section classname classes wrapper data has border hasborder wrapper data has border true border 1 px solid var color border primary styling sub components if you need to style sub components that use legacy global css classes e g avatar you can wrap the class like this global avatar to prevent css modules from turning it into a generated class name avoid this if possible and prefer to create a new local class and pass it to the nested component theming use our design tokens for colours and learn more about user theme preferences in our theming guide last updated may 29 2026 improve this page sponsored by join mastodon blog view source cc by sa 4 0 imprint
Thumbnail images (randomly selected): * Images may be subject to copyright.GREEN status (no comments)
  • Mastodon
  • Stephen Tures
  • Swayable

Verified site has: 190 subpage(s). Do you want to verify them? Verify pages:

1-5 6-10 11-15 16-20 21-25 26-30 31-35 36-40 41-45 46-50
51-55 56-60 61-65 66-70 71-75 76-80 81-85 86-90 91-95 96-100
101-105 106-110 111-115 116-120 121-125 126-130 131-135 136-140 141-145 146-150
151-155 156-160 161-165 166-170 171-175 176-180 181-185 186-190


The site also has references to the 2 subdomain(s)

  joinmastodon.org  Verify   blog.joinmastodon.org  Verify


Top 50 hastags from of all verified websites.

Supplementary Information (add-on for SEO geeks)*- See more on header.verify-www.com

Header

HTTP/1.1 301 Moved Permanently
Connection close
Content-Length 162
Server GitHub.com
Content-Type text/html
Location htt????/docs.joinmastodon.org/dev/frontend/css-and-styling/
X-GitHub-Request-Id BBF0:396044:DE27:E9EA:6A482C80
Accept-Ranges bytes
Age 0
Date Fri, 03 Jul 2026 21:41:20 GMT
Via 1.1 varnish
X-Served-By cache-lcy-egml8630060-LCY
X-Cache MISS
X-Cache-Hits 0
X-Timer S1783114880.396740,VS0,VE90
Vary Accept-Encoding
X-Fastly-Request-ID b80e873ea19104c082f24ae94916fe218c71cbd6
HTTP/2 200
server GitHub.com
content-type text/html; charset=utf-8
last-modified Thu, 02 Jul 2026 05:48:17 GMT
access-control-allow-origin *
strict-transport-security max-age=31556952
etag W/ 6a45fba1-5fb3
expires Fri, 03 Jul 2026 21:51:20 GMT
cache-control max-age=600
content-encoding gzip
x-proxy-cache MISS
x-github-request-id 0D64:2340B0:4AEA7:4C2D8:6A482C80
accept-ranges bytes
age 0
date Fri, 03 Jul 2026 21:41:20 GMT
via 1.1 varnish
x-served-by cache-rtm-ehrd2290050-RTM
x-cache MISS
x-cache-hits 0
x-timer S1783114881.515753,VS0,VE119
vary Accept-Encoding
x-fastly-request-id 3bde4e0536872fbf56c0efdaf206b3952f90b1ae
content-length 6126

Meta Tags

title="CSS and styling - Mastodon documentation"
charset="utf-8"
name="viewport" content="width=device-width,initial-scale=1"
property="og:type" content="article"
property="og:url" content="htt????/docs.joinmastodon.org/dev/frontend/css-and-styling/"
name="description" content="How to style components in the Mastodon frontend"
property="og:description" content="How to style components in the Mastodon frontend"
name="twitter:site" content="@joinmastodon"

Load Info

page size6126
load time (s)0.370657
redirect count1
speed download16556
server IP 185.199.109.153
* all occurrences of the string "http://" have been changed to "htt???/"