Scrivener for iOS - Dark Mode

I purchased Scrivener for iOS this morning. Thank you! Thank you! Thank you!

The first wish I have this product is a dark mode. I have found the settings to change the background color of the text window, however cream and grey are still too “bright”. For my middle aged eyes, I find a dark background with white text to be easier to handle over long periods. Ideally I would love for the entire interface to be dark, but perhaps a dark full screen text window would work as well.

I understand that this is not critical need, but I am expecting to use Scrivener for iOS a lot on my 12.9" iPad Pro, so adding this feature would be great! The ability to skin Ulysses to a dark interface is a great feature, but I like Scrivener so much more.

Thank you again for all of the hard work and effort in building Scrivener for iOS!

–Chris

iOS has a built-in “dark mode” that can be made accessible through triple-click of the Home button. What it actually does is invert colors, but this achieves exactly what you are looking for inside the iOScriv interface.

See Settings app > General > Accessibility > Accessibility Shortcuts : enable Invert Colors.

Thanks for the response. I am very aware of that iOS feature…and I do have it turned on. It works well enough, but having a dedicated dark mode is still on my wish list.

Dark mode is much more difficult in rich text apps such as Scrivener than it is in plain text apps such as Ulysses. In plain text apps, the text itself has no style, so changing the colour does not affect any data - it’s purely a display thing. In rich text apps, the text colour is part of the data itself (because in a rich text app, you can change the colour of the text). In the Mac text system, there is a “temporary formatting” feature that allows developers to apply a temporary colour to text, which we use in the full screen mode. This feature is not available in iOS.

I do know of a way to override the text colour, but unfortunately there’s no way to also override the colour of underlines and strikethroughs. So, this is the fundamental problem of adding a dark mode to Scrivener for iOS.

All the best,
Keith

Thank you for the explanation! I have built several iOS apps so I am familiar with the challenges you mentioned. When I have had to invert colors for dark operations (or provide user selectable color themes), extending UIcolor with an invert/dark/slection method that calculates the appropriate dark/inverse/user color attribute has worked even with styled text (underlines, strikethroughs, etc). However, I do not know how you have implemented your text editor views so type extensions may not work like they have for me.

Thank you again for answering and releasing Scrivener for iOS! I am loving it!

Hi,

It’s not that it’s a problem with styled text (NSAttributedString) in general, but rather a problem with rich text data. In Scrivener’s editor, like in Word and Pages, the data you are working with is rich text. So, you can make this word red, this sentence green if you want. And the problem is that if I, as a programmer, change the colour of the text for a dark mode, that colour becomes part of the data. So, that word you made red and the sentence you made green loses the colour, and all of the text becomes a different colour.

On macOS, you can tell NSLayoutManager to draw the text in different colours - to ignore the colours associated with underlying data and use something different. That facility is not available in the iOS frameworks. However, I think I do have a way of doing it by completely overriding the drawing in NSLayoutManager.

There are other issues with a dark mode in Scrivener, too - there are all those bright coloured labels you can add, and all the coloured icons, none of which will look good on a dark background. What I could do, though, if I can solve the technical program mentioned above, is at least add a dark writing mode.

All the best,
Keith

Thank you again for the great explanation! A dark writing mode would be a welcome enhancement!

Godspeed.

Or should that be – Dark lord speed :wink:

+1 Keith, that’s awesome if you could do it. An idea- why not just make the whole iOS scriv interface dark?
This would eliminate the contrast issue you spoke of

Hi, I just registered to add my request on this, too. My preferred editor is a dark grey background with a light-colored text (light-green or blue normally) and not the sharp white on black you get with iOS inverted color setting. I find that the light-color on dark-grey type of color scheme is much, much more comfortable and less straining on the eyes, especially when I’m writing at night.

As to the difficulties w/ regards to styling in dark-mode personally I would be fine with the iOS dark mode using only un-styled text while in dark-mode or using the same mechanism that you use for desktop “composition” mode where the text will only have one color setting. As it currently stands now, my styling choices from the desktop app don’t seem to transfer to the iOS version so I have to restyle anyway, and if I have to restyle anyway, then I’d just as soon have a comfortable writing environment that makes it more worthwhile.

I realize that this may not be a popular opinion but I don’t look to Scrivener as a tool for text styling and formatting. I rely on it to provide me the organizational structure I need to make my writing better. If adding a proper dark mode means that my text styling gets mucked up a bit then that’s a sacrifice I’m more then willing to make if it means I can write that text in a more comfortable way.

I have eye strain issues and a black background would really improve my workflow; but yes, I agree that this matter is secondary to the app’s fundamental ability to organize your writing and nothing should impede that particular agenda.

I think part of Keith’s point is that you couldn’t just un-style the text while in a dark mode.

gr

This is starting to make my eyes hurt reading this convo off my little iPod. I wish this forum had a night mode that didn’t involve me having to invert all the colours of my little display through the accessibility feature!

But it’s my brain that hurting from the technicality of this discussion…

Can’t tell which is which …*

*he says while turning off his light switch to muse about deep and esoteric things in the dark…

Would it be possible to temporarily override the font face as well? Or would it be too massive of the undertaking? What I have dreamed up is ultimately an alternate editor, where user could select text/background colour (or at least shade of grey) pick a keyboard (light/dark) and an alternate font (I would love to be able to write in monospace font, and then proofread/edit in full rtf environment)?

This would be so much more easily resolved by copying and pasting into a program with a built-in dark mode…

The easiest workaround is to invert interface colours, using iOS native settings. It takes a triple-click of the Home button, one can set it up to do so. We are just fantasizing about adding a feature to the app, as if it does not have enough…

If there’s a way to improve an app, I think nothing should impede this line of thinking. Complacency leads to stagnation; something that simply shouldn’t infect app creation/improvement. Can you setup your device to triple click and invert colours? Yes. Would it be better if you didn’t have to? Yes. Why? Because inverting colours inverts everything, even in other apps. It’s also not just about inverting colours. It’s about setting your own colours that I think users ultimately want. Not black, but perhaps light grey, or purple, or whatever.

Not all tweaks are improvements, and KB has given a detailed explanation of why trying to make this change is much more difficult technically than it sounds.

… and all that time spent on perfecting every possible detail of the appearance of Scrivener, its looks, could instead have been spent using the software. I think that all the tweaking and wishing for something else is often just another way of procrastinating, a way of finding an excuse for not having produced that master piece. “If only Scrivener had dark mode, then…”

I have heard that several great authors didn’t even have a computer to write on, much less something as handy as Scrivener.

Yes, the argument can be made that everything is a distraction and we only need a pencil and paper to write. But I’m not a Luddite and happen to enjoy technology and feel it only aids writing.