Actions

Work Header

Olive Pine Moon site skin theme

Summary:

This theme uses an olive tone as its basis, and was built at the request of a Redditor.

It requires ravenothere's Closer to Home BASE site skin in order to function.
 

Notes:

This theme is low-brightness, offering enough contrast for low lighting, but might be too low for a well-lit setting (I later improved the font contrast for general distribution due to this concern, but you might wish to dial it back down: specific values [originally #4E6856 and tweaked to #75D081: 1.5x red and blue, 2x green] are named in the image descriptions of this work, and in the REM notes of the CSS file on GitHub).

That said though, a friend of mine is very happy with reading cornflower #5627FF text (actually somewhere between a dark iris or dark periwinkle, and a light indigo-violet; I just keep thinking of it as cornflower) chained to Reversi for a medium-charcoal background of #333333 (I know because I wrote the CSS for her skin, per her stated preferences [she sent color swatches, IIRC], and I always have the damnedest time trying to read things in the screenshots that she sends to me).
  Likewise, some people like reading text with rainbow ink (background-clip: text over some colorful shimmering rainbow .gif or static tie-die .png) — though this can play merry hell when reading a heavily-CSS work (one of my readers once commented on just such, in fact).
  So: though I prefer Light Mode black-ish letters on white-ish background, this olive theme could very well be perfect for you (whether as-is or with a little refinement for your personal taste/needs: lighter or darker shades maybe, or perhaps a simple hue-rotate()).

NB:  I keep saying “theme” rather than “site skin” because different places use the terms a little differently and on AO3 a site skin seems to [at least sometimes] mean more the ability to rearrange the actual layout of what's physically where on a given page and its height and width and such (like remodeling a home, and moving where the walls, ceilings, floors, and entire rooms are), whereas a theme seems to lean [at least sometimes] more toward basic æsthetic paintjobs and redecoration (like your home screen's or lock screen's background wallpaper [or photo album, or screensaver] — but usually with a bit more bang for the buck: closer to wallpaper plus paintings, plus drapes and valences, wainscoting and crown moulding).
  (Think back to the old Warcraft reskins and mods and T.C.s [total conversions⁠ ⁠] of the late '90s and early '00s.  Talk [at the time] of a Simpsons skin wasn't aimed a slap of paint and call it a day, shifting things to cartoon color palette, but a whole makeover of the warring factions [I thought that they had achieved this, but I can't find anything now to indicate that this was so].  Then there was the Warcraft Editor, with the capability of making exploding sheep, changing utterly the basic nature that one normally expects.  [And all of this is to say nothing of the Doom mods of which I've watched some crazy vids.]  A solid hack is a lot more than a little hex [color] edit [unless that hex edit is a game save file, and you want your Wizardry party maxed out in levels, stat.s, spells, and equipment...], it's knowing how to leverage the properties and underlying DOM [in AO3's case] in a way that makes everything sing and dance [just one quick aside, if reaching back in time for themes of those days: ElectricAlice's Vaporwave {GitHub repo here} is way-cool, and a Simpsons skin or theme could easily carry a kitschy cool-adjacency, but I suspect that dancing babies and motorcycle frog-Goblins might be better suited to a once-off laugh], examples of which can be found in Ao3SiteSkins's GitHub repos.  Maybe that's the basis for my impression of the AO3 modding community's possible differentiation between full skins and cosmetic themes?  Not sure: it could be very real echoes of the language of bygone days, and it could be just me reading too much into things.)

(See the end of the work for more notes.)

Work Text:

 


Preview screenshots  Contents ↑

Click here for preview images
  (details collapsed for easier scrolling)


Olive Pine Moon, desktop browser view
text brighter for general distro with txt-header: #75D081
zoom

Olive Pine Moon, desktop preview


Olive Pine Moon: tag change on hover
zoom

Olive Pine Moon: tag change on hover preview



Olive Pine Moon, desktop browser view
original request's font color of txt-header: #4E6856
zoom

Olive Pine Moon, desktop preview


Olive Pine Moon, iPhone on left and Android on right
original request's font color of txt-header: #4E6856
zoom

Olive Pine Moon, cell 'phone preview

 

 


 


Installation  Contents ↑

To use the Olive Pine Moon theme, you will need at least one parent skin above it in the chain.  Essentially, that parent skin lays the foundation and this one acts to modify it.
  In order to install this theme, follow ravenothere's instructions.
  When you get to STEP TWO, use this Olive Pine Moon theme.

The Olive Pine Moon theme (much like ravenothere's own themes) is like clip-on sunglass lenses to paint AO3 in a certain manner, where ravenothere's base skin is the underlying architecture to support it, like the frame of one's glasses to which the sunglass lenses get clipped.  This permits someone to easily change certain aspects and create a new theme, without having to dig through the framework that holds the theme material in place — like being able to build specialty lenses without risking mangling the glasses' frames.

Olive Pine Moon has REM notes in it that will remain in place after installation.  This is because they are phrased as classes to inject content: "...", but they won't inject anything into any page because don't target any class that anyone is liable to ever use, their classes being of the form .NOTE_re_....  If you dig through the CSS to learn from it, study it, and/or change anything, leave the notes as-is (but feel free to add your own notes of some similar sort — for example: .SUPPLEMENTAL_NOTE_re_...): they are there to guide you (and remind me) w.r.t. a given rule, rule stack, or subset of rules.

For my own testing purpose, using only ravenothere's Normal Layout CTH_base.css as the parent, and my Olive Pine Moon as the second parent, then making the skin that sews the two together as its parents (in that sequence) with a simple irrelevant placeholder rule in it so that it wouldn't be empty (which would be rejected by AO3's CSS programs), I found that [for my testing purposes] it worked on desktop tower computer Chrome, Firefox, MS Edge, Opera, and TOR, as well as on iPhone Safari and Android Chrome.

(Notice that I skipped some steps in my installation chain, though?  That might be OK for basic spot-checks if you don't intend to take advantage of all of the perqs that each step provides, but if you intend to use something on the daily [as one might, when applying a site skin for one's AO3 experience], then I strongly suggest that you follow ravenothere's proper installation instructions to the letter.)

The final step of making the actual skin that you'll use (chained to its various parent skins) just needs some rule in it in order to be permitted to exist as a skin.  Typically, the go-to is something to the effect of .rose-pine { opacity: 1; } or .neos-skin { opacity: 1; }; I opted for .Olive-Pine-Moon_theme { content: " /// * [And some notes-to-self here, so that I could ensure proper documentation over time.] * /// "; }; the key isn't what you enter as a placeholder rule, so much as that it be something that doesn't affect anything (just word to the wise: don't use any apostrophes; I'm not certain of site skins, but in work skins they're perfectly OK... until suddenly they aren't, and they don't say shit about not being O, you just suddenly realize that things are quietly broken, and good luck troubleshooting why).

 

 


 


The underlying skeleton  Contents ↑

So, quick rundown:

The base skin, ravenothere's Rosé Pine, uses variables (that's MDN's link; W3's is here) here instead of properties, as does BlackBatCat's, and ZerafinaCSS's (for those seeking to write site skins, you might want to check out AO3's skins help text).  Variables act a little like a parent skin from within the site skin itself — that is: just as CSS controls easily anything classed in HTML, variables act like a parent declaration that all child declarations look to for their values; change a variable, and all declarations that look to that one will take that value, whereas if you change any child declarations to look from one parent to another instead, then they'll take their cue from that new parent instead.
  The lens and framework simile that I used in the installation section?  The whole likening of a CSS theme to clip-on lenses, w.r.t. the base skin's architecture equating to one's glasses' framework?  That's all due to the variables.  I suppose that it needn't be: one could arbitrarily separate certain aspects by category, leaving borders in one skin and backgrounds in another, and fonts (and their colors) in a third, then chain those all together, but why, when more easily they could live in the same skin with each category being grouped cleanly together (and separated easily by REM notes, in order to make clear which section controls what)?  Strictly, the same could be said when using variables, I suppose, but if nothing else, the separation means a single sweeping update to one parent skin effectively updates all of its cascading child skins automatically (which is why in this case I think of variables as being CSS for CSS: a parent sheet will cascade its architecture to its child sheets, while the child sheets modify things thematically as needed), rather than having to go to the relevant section of every single all-in-one skin and updating each one's architectural section manually.
  As of 19 Aug 2025, AO3 added variables to the whitelist for site skins (cf. release 0.9.425, per Admin Post 32806).  I'm a bit old school and I like my properties, but variables are powerful (though what I wouldn't give for var() and clamp() — and grid-row() and grid-template-area() while I'm wishing [I tell you: I watch Kevin Powell's CSS vids and mentally drool in envy]...).  They're also not allowed in work skins (so far), just site skins (which I hadn't really dabbled with 'til maybe Feb of this year, helping people here and there on Reddit), and I only use CSS on AO3, and prior to 2020 I hadn't mucked with it since c2000-2005 (self-taught late '90s), so Olive Pine Moon is just a mini-theme.  Maybe down the road I'll work up a full-blown variables-based theme that doesn't rely upon another's skeleton, but for now I still need to bone up on them.

Right now, I have a simple skin in-work, pulling a few RNG tricks and such, and revealing otherwise hidden magical code that lurks behind the veil.
  After that, I think that I'll get back to the Yellow Submarine thing.  Someone had posted some concept art on Reddit, and I had run with it to make the beginnings of a skin.  I don't want to take the ball and run with it, but sans further feedback, I think that that'll be my project-after-next: to complete it based upon the initial image.  We'll see how it goes, either way.

 

 


 


Further material  Contents ↑

Wanna take things to the next level?  Try these:

  • Userscript to return tailored kudos thanks' and styled comments' visibility client-side — Prior to 15 Dec 2025, some of us got into styling the feedback section's kudos messages and buttons and edit fields and comments, but that got nuked (probably with good reason); I wrote this script in order to automatically put that section of the page back within the reach of authors' work skins, restructuring the page at my end (and now yours, too⁠ ⁠!), so that I could see any cool shit with which people replace the kudos messages, along with any other shenanigans in that section (you can even see a simple but fun example of it right now at the bottom of this very page — or at least you could, if you had this script installed [or were to move things to the right spot in DevTools, of course]).
  • 0_0_MLM's Anti-Disaster Site Skin (Accessibility) — This baby removes the buttons for {orphaning works, clearing history, deleting bookmarks / chapters / works / skins / account, and deleting messages / random Marked for Later works on the AO3 landing page}, making it really hard to goof (though adding a step of having to turn off the skin temporarily, if you actually do want to perform any of these actions).
  • w4tchdoge's AO3 Bookmark Maker — It grabs the fic's info (title, author, 'ships, summary, and approximate date last read) [some of it you need to adjust in settings, and you can find more about which does which in the script page's Feedback section] and drops it into the top of your bookmark as a <details> that's collapsed until you click (like the thing that you might've clicked earlier on this same page, to preview screenshots of Olive Pine Moon⁠ ⁠).
  • amphibianauthor's Ao3 Coding References, by our very own HTML Tryhard librarian — This documents rather thoroughly a large list of different works out there, covering basics, generators, tutorials, decorating, C.Y.O.A., newspapers/blogs, texting work skins, SocMed platform work skins, interactive games (on AO3), and a shit-ton more.
  • As well, Redditor u/Kaigani-Scout has an astounding amount of research freely offered to everyone in their Google drive.

 

 


 


About  Contents ↑

This is a modified version of Rosé Pine Moon — Closer to Home by ravenothere (DoveEater), which is in turn a fork of Rosé Pine Site Skin by BlackBatCat, in turn again inspired by neos [Site Skin] by ZerafinaCSS (Zerafina) — all credit for the developmental ladder goes to them.

The Olive Pine Moon theme is based upon the request of Redditor u/fangedfaunn, without which this theme would not exist.

 

 

Notes:

If you like what you've seen here, then hit my ►⁠CSS Abuse and HTML Tryhard⁠◄ collection of tutorials [QRLs, demos, RNG puzzles, playable games, JS userscripts], take a spin through ►⁠my works in collections⁠◄ and see what might grab you (the collections are thematic by comedy, zombies, romance, dice-RPGs, food-porn, sci-fi, etc., for readers' ease of browsing), or ►⁠my “Works” page⁠◄ (everything simply listed in order of most recently updated), or just ►⁠subscribe to my author's page⁠◄ in order to get constant updates on all of my new material (updates are Sundays [not every single Sunday, and once in a blue some random datetime] at ~09:50 central time [they had been ~10:20, but AO3 experienced some hiccups back in March of '25 resulting in notifications going out an hour late, of which I'm still leery, and so would rather bury my work 30 minutes earlier in the queue of recent updates], so e-mail notifications to subscribers typically arrive at 10:32-10:44 Central time [UTC 15:xx Mar-Nov / 16:xx Nov-Mar], though AO3's servers sometimes make that the 4Q of the hour [and — rarely — later])!