Skip to content

Latest commit

 

History

53 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AO3Skin

Skin for AO3. Fully themable through variables.

Features

  • Slim Header that stays with you when you scoll (Except when you're in the middle of a reading session!)
  • Sticky Dashboard navigation (Desktop only) and Filters
  • Custom icons for required tag
  • Individual tag category colors
  • Styled statistics graph
  • Customizable through CSS variables

Installation / Setup (AO3 Skin editor)

  1. Create parent skin with basic styling
    • Name: <your-username> My Skin (screen)
    • Paste the screen CSS
    • Check: "Parent skin only"
    • Choose media: screen
  2. Create parent skin for tablet
    • Name: <your-username> My Skin (tablet)
    • Paste the tablet CSS
    • Check: "Parent skin only"
    • Choose media: only screen and (max-width: 62em) and only screen and (max-width: 42em)
  3. Create parent skin for mobile
    • Name: <your-username> My Skin (mobile)
    • Paste the mobile CSS
    • Check: "Parent skin only"
    • Choose media: only screen and (max-width: 42em)
  4. [optional] Create light / dark mode skin
    • Name: <your-username> My Skin (light / dark) (choose the one that isn't your default mode)
    • Paste the light or dark theme skin of your choice
    • Check: "Parent skin only"
    • Choose media: (prefers-color-scheme: light / dark)
  5. Create the master skin
    • Name: <your-username> My Skin
    • Paste the theme css you want to use (different to step 4.!)
    • Add the previously created skins in the same order as parent skins
      1. (screen)
      2. (tablet)
      3. (mobile)
      4. [optional] (light / dark)
    • Choose media: screen (or if you choose to do step 4., pick the other one of (prefers-color-scheme: light / dark) option now!)
  6. Save and hit "Use" :)

Variables

Reference table of all CSS custom properties used by the skin and their intended uses. You usually don't need to change any of those.

Variable Use / purpose
--color-modal-overlay Modal/dialog background overlay color (semi‑transparent overlay).
--color-dark-rbga025 Reusable dark color at 25% alpha used for shadows and subtle overlays.
--color-dark-rbga010 Reusable dark color at 10% alpha for very subtle overlays.
--offset-x X offset for shadow calculations.
--offset-y Y offset for drop shadows.
--blur-radius Blur radius for shadows.
--shadow Convenience shadow shorthand (drop shadow).
--shadow-inset Convenience inset shadow shorthand.
--comment-img-size Fixed size used for comment avatar / image elements (default 50px / 45px for tablet / 40px for mobile).
--border-radius Corner radius applied across UI elements.
--tag-border-radius Corner radius applied to tags elements.
--earmark-corner-size Corner size for colored "earmark" on rated fics in list view. Set to 0 to disable.

Theme Colors

All colors used for creating your own color theme.

Variable Use / purpose
--bg-base Page background seen in header, dashboard, footer.
--bg-highlight Highlight color — form input elements, odd fav tag rows, header underlines, some borders
--bg-primary Main background.
--bg-secondary Background for content boxes.
--bg-tertiary Background for nested content boxes (inner panels).
--text-highlight Highlight color for interactive text (links, buttons, some dropdown rows).
--text-primary Primary text color for general content.
--color-red Semantic red (errors, excluded filters).
--color-orange Semantic orange (caution notices).
--color-yellow Semantic yellow (informational notices).
--color-green Semantic green (included filters, success accents).
--color-purple Semantic purple (alerts, flashes).
--color-blue Semantic blue.
--color-link-action-hover Hover/focus color for interactable links and actions.
--color-selection Accent used for current selection.
--color-fg-question Foreground color for help questions/labels.

Tag Colors

Variable Use / Default
--color-fandom-tags --color-selection
--color-mature-tags --color-red
--color-warning-tags --color-orange
--color-platonic-tags & Relationships. Default: --color-yellow
--color-explicit-tags Slash relationships. Default: --color-purple
--color-character-tags --color-green
--color-freeform-tags --color-blue

Rating Colors

Colors are used for tags in reading view and earmarks in list view.

Variable Default
--color-explicit-rating --color-purple
--color-mature-rating --color-red
--color-teen-rating --color-yellow
--color-gen-rating --color-green

Notice Box Colors

Variable Use / Default
--color-notice General notice box. Default: --color-yellow
--color-caution Warnings / Reqired. Default: --color-orange
--color-error Errors. Default: --color-red
--color-alert-flash Whatever that is. Default: --color-purple
--color-collection Collection page banner. Default: --color-selection

Stat Chart Colors

Any value not defined, will use its default AO3 value. Use This site: https://codepen.io/sosuke/full/Pjoqqp to calculate any color you want.

Important

Make sure to set brightness(0) as the very first value in the calculatd filter chain for optimal results.

See: My Github Gist for details.

Variable Use / purpose
--filter-chart-bg Filter applied to chart background images (suggestion: opacity(0) to hide).
--filter-chart-text Image filter used to render chart text/icons so they contrast on theme backgrounds. (suggestion: --primary-text equivalent)
--filter-chart-tooltip Filter used for chart tooltips. (suggestion: --bg-highlight equivalent)
--filter-chart-accent Accent filter used for chart bars. (suggestion: --color-selection equivalent)
--filter-chart-accent-hover Accent filter variant for hover state on chart bars. (suggestion: --color-link-action-hover)
--filter-chart-guide-even Filter for even guide lines in chart. (suggestion: ignore, or opacity(0.2) for dark, a higher 0.x for light theme)
--filter-chart-guide-odd Filter for odd guide lines in chart. (suggestion: ignore, or opacity(0.1) for dark, a higher 0.x for light theme)

Filter color for stat icons

--filter-text-primary - The skin uses custom icons for stats (sourced from https://lucide.dev) and some ui elements. Those fit best into the theme if they match the primary text color. For that --filter-text-primary should be set the same way as the filter colors, using the hex color value of --text-primary.

Custom Required Icon Colors

--filter-icons - Define a filter chain to tint replaced icons a little closer to used theme colors. Play around with it in the Browser dev tools. brightness, contrast and saturate are your friends.

Add-ons

How to use: Create its own file and add it as a parent skin to your theme, or paste the code under your master theme's color definition (Step 5).

AI Detector

Detects a certain class tag typical for text pasted directly out of Anthropic's AI (Claude) answer text box. It will mark every paragraph that is copy&pasted and add a disclaimer at the top of the fic, notifiying you of at leat one detected paragraph.

This is not a failproof way to detect AI generated text! (But the presence of the tag is a 100% indicator that the person has been copy & pasting text from a commercial Gen AI)

About

Sike Skin for AO3 with customizable colors

Topics

Resources

Stars

10 stars

Watchers

0 watching

Forks

Contributors

Languages