Scrivener for iOS - Dark Mode

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.

Dark mode would be nice, and so would the ability to edit RGB levels on imported photos, or automatically insert links to Pinboard bookmarks, or schedule payments for monthly utility bills, or find the location of the nearest Thai restaurant. But fortunately there are already other apps that do these things well, and there’s a systemwide clipboard that lets us use all the other apps alongside Scrivener.

So many posts here are along the lines of “program X or cloud service Y does something, so Scrivener should do it too…” rather than focusing on how to improve the things that really make Scrivener unique and powerful.

It’s not really dark-mode that I really find lacking in iOSScrive personally. It’s the full-on compose mode found in MacOSScriv that I find missing. The ability to change the number of words on a line on the fly is a very unique tool found in Scrivener that is not found anywhere else (I think). This, in addition to night mode, would be a godsend. I have reading disabilities (dyslexia) and this really helped me with some of my writings. I wish the compose-mode in its entirety, with all its bells and whistles, be found in iOSScriv. I know, I know, Mr. Scrivener said it’s not feasible, given the limitations of the programming architecture and all that. But this is a wish-list. So there’s my rant.