Advanced Customization
CSS
App Twine allows advanced customization its interface by creating a special
file, user.css
, in your Twine folder. You'll need to create this file outside
of Twine using a text editor.
If user.css
exists, then app Twine will add the contents of it to the UI as
CSS rules, potentially overriding the default styling. CSS allows changing the
appearance of the application--using different fonts, for example, or
colors--but does not allow changing Twine's functionality or adding new
features.
Here's a sample user.css
that replaces the graph paper background of the story
map with a plain gray color:
.passage-map {
background: hsl(0, 0%, 75%) !important;
}
[data-app-theme="dark"] .passage-map {
background: hsl(0, 0%, 30%) !important;
}
user.css
is only available in app Twine. If you'd like to customize browser
Twine using CSS, browser extensions like
Stylus might help.
Some important things to keep in mind working with user.css
:
- The structure of Twine's UI can and will change on every release, even for patch-level version changes. Because these changes are often numerous, they will not be part of release notes.
- The file must named exactly
user.css
--all lowercase.User.css
will not work. - Changes to
user.css
will take effect the next time you start Twine. - To determine what CSS selectors to use, you can either use developer tools in browser Twine--the DOM structure is identical between browser Twine and app Twine--or open developer tools in Twine itself by going to Troubleshooting under the Help menu, then choosing Show Debug Console.
- You can use the in-app debug console to test your CSS rules. The rules you set
in
user.css
will be listed as injected stylesheet in the developer console. user.css
must be at the same folder level as yourStories
andBackups
folders, directly below theTwine
folder.- If there's a problem loading
user.css
, Twine will load as normal and not apply any customizations. If any of your CSS rules are incorrectly written, they will be ignored. Twine will not show a warning in any of these cases. - In order for
user.css
to win specificity, you might need to add!important
to the end of your declarations.