question: Why is adding a dark theme to an app/OS so hard and doesn't take just a few color changes?
comment: from my experience, it's the chaotic way in which designers end up serving specifications. Might be more true in web but designers don't often enough get enough time or info to plan out a theme for their project in such ways that inversions of colors can just happen on the fly and you gets palettes with too many colors that get used inconsistently in the designs that you then have to flip somehow. things aren't defined, for instance, as background color, title color, text color, link color from the start but a humble of colors that are sometimes backgrounds sometimes links sometimes 1 shade away from every other view/page in the project making the scope of such a theme change pointlessly more difficult based on the average client's willingness to incorporate principles of accessibility design I'd be surprised if things got better
passages: Some well known CMMs are ColorSync, Adobe CMM, LittleCMS, and ArgyllCMS.
  
  Section::::Implementation.:Operating system level.
  
  Apple's classic Mac OS and macOS operating systems have provided OS-level color management APIs since 1993, through ColorSync. macOS has added automatic color management (assuming sRGB for most things) automatically in the OS, and applications have to work around this to provide more accurate color management.
   One very common case of such palettes is the sepia tone palette, which gives an image an old fashioned and aged look (left). Another gradient example, based on blue hues, is presented here (right), but any hue or mixing of hues can be used. Many cell phones with built-in cameras have options to take colorized photos using this technique.
  
  Section::::Other common uses of software palettes.:Adaptive palettes.
   This RGB software palette occupies the full 8-bit range of possible palette entries, so there is no room for other fixed colors. Software using this palette must draw their user interface elements with the same colors used to show pictures. Also again, it does not provide true grays.
  
  Section::::Other common uses of software palettes.
  
  Section::::Other common uses of software palettes.:Grayscale palettes.
  
  Simple palette made doing every triplet RGB primaries having equal values as a continuous gradient from black to white through the full available palette entries. Here is the 8-bit, 256 levels palette:
   "Color matching module" (also -"method" or -"system") is a software algorithm that adjusts the numerical values that get sent to or received from different devices so that the perceived color they produce remains consistent. The key issue here is how to deal with a color that cannot be reproduced on a certain device in order to show it through a different device as if it were visually the same color, just as when the reproducible color range between color transparencies and printed matters are different. There is no common method for this process, and the performance depends on the capability of each color matching method.
   One of the problems associated with using a fixed color palette is that many of the needed colors may not be available in the palette, and many of the available colors may not be needed; a fixed palette containing mostly shades of green would not be well-suited for images that do not contain many shades of green, for instance. The use of an optimized color palette can be of benefit in such cases. An optimized color palette is one in which the available colors are chosen based on how frequently they are used in the original source image. If the image is reduced based on an optimized palette the result is often much closer to the original ("Figure 4").
   Apple widely demonstrated two Appearance Themes which override Apple Platinum, Hi-Tech and Gizmo. Hi-Tech is based on a shades-of-black color scheme that made the interface look like a contemporary piece of audio-visual equipment. Gizmo is a "kids" interface, using lots of bright colors and "wiggly" interface elements. Both changed every single element of the overall GUI leaving no trace of Apple Platinum. A third theme was later introduced, Drawing Board, developed at Apple Japan. This theme uses elements that make the interface look like it has been drawn in pencil on a drafting-board, including small "pencil marks" around the windows, a barely visible graph paper grid on the desktop, and "squarish" elements with low contrast. Although none of these themes were included with a released version of Mac OS, the themes were present in pre-release versions of Mac OS 8.5 but were removed without explanation in the final release.
   Section::::Known issues.
  
  The main issue about certain applications of color normalization is that the end result looks unnatural or too distant from the original colors. In cases where there is a subtle variation between important aspects, this can be problematic. More specifically, the side effect can be that pixels become divergent and not reflect the actual color value of the image.
  
  A way of combating this issue is to use color normalization in combination with thresholding to correctly and consistently segment a colored image.
  
  Section::::Transformations and algorithms.
   Another challenge for bluescreen or greenscreen is proper camera exposure. Underexposing or overexposing a colored backdrop can lead to poor saturation levels. In the case of video cameras, underexposed images can contain high amounts of noise, as well. The background must be bright enough to allow the camera to create a bright and saturated image.
  
  Section::::Programming.
  
  There are several different quality- and speed-optimized techniques for implementing color keying in software.
   Also, it does not provide true grays. Remaining indexes can be filled with sixteen intermediate grays or other fixed colors. In fact, this is the best balanced RGB "master" software palette, in a compromise between the RGB arrangement based in the human eye's sensibility and a sufficient remaining palette entries for another purposes.
  
  Section::::RGB arrangements.:8-8-4 levels RGB.
   The number of colors available in the palette is also a contributing factor. If, for example, the palette is limited to only 16 colors then the resulting image could suffer from additional loss of detail, resulting in even more pronounced problems with flatness and color banding ("Figure 5"). Once again, dithering can help to minimize such artifacts ("Figure 6").
  
  Section::::Digital photography and image processing.:Applications.
   Adaptive palettes only work well with a unique image. Trying to display different images with adaptive palettes over an 8-bit display usually results in only one image with correct colors, because the images have different palettes and only one can be displayed at a time. Here is an example of what happens when an indexed color image is displayed with any color palette that is not its own adaptive palette:
  
  Section::::Other common uses of software palettes.:False color palettes.
   Many color graphs have discontinuities, where instead of evenly changing brightness and color, it suddenly changes, even when the function itself is still smooth. This is done for a variety of reasons such as showing more detail or highlighting certain aspects of a function.
  
  Section::::Method.:Discontinuous color changing.:Magnitude growth.
   When an artist uses a limited [[color scheme|color palette]], the [[Human eye|eye]] tends to compensate by seeing any gray or neutral color as the color which is missing from the color wheel. For example, in a limited palette consisting of red, yellow, black, and white, a mixture of yellow and black will appear as a variety of green, a mixture of red and black will appear as a variety of purple, and pure gray will appear bluish.
   Used to display pure grayscale TIFF or JPEG images, for example.
  
  Section::::Other common uses of software palettes.:Color gradient palettes.
  
  Palettes made of a continuous color gradient from darkest to lightest arbitrary hues. The pixel data is treated as if it were grayscale, but the color table plays with RGB color combinations, not only gray. The relationship between the original luminance and the mapped one can vary, but the lighting scale is preserved along all the palette entries.
   Since 1997 color management in Windows is available through an ICC color management system (ICM). Beginning with Windows Vista, Microsoft introduced a new color architecture known as Windows Color System. WCS supplements the "Image Color Management" (ICM) system in Windows 2000 and Windows XP, originally written by Heidelberg.
  
  Operating systems that use the X Window System for graphics can use ICC profiles, and support for color management on Linux, still less mature than on other platforms, is coordinated through OpenICC at freedesktop.org and makes use of LittleCMS.
  
  Section::::Implementation.:File level.
   Light-on-dark color scheme
  
  Light-on-dark color scheme, also called dark mode, dark theme or night mode, is a color scheme that uses light-colored text, icons, and graphical user interface elements on a dark background and is often discussed in terms of computer user interface design and web design.
   A system-wide dark mode was implemented, allowing users to enable a light-on-dark color scheme for the entire iOS and iPadOS user interface and all native applications, as well as all supported third-party apps. It can be manually turned on or set to automatically switch between light and dark modes based on the time of day.
  
  Section::::System features.:Siri.
   Section::::Digital photography and image processing.:Examples.
  
  Reducing the color depth of an image can often have significant visual side-effects. If the original image is a photograph, it is likely to have thousands, or even millions of distinct colors. The process of constraining the available colors to a specific "color palette" effectively throws away a certain amount of color information.
   Themes are often used to change the look and feel of a wide range of things at once, which makes them much less granular than allowing the user to set each option individually. For example, you might want the window-borders from a particular theme, but installing it would also alter your desktop background.
  
  One method for dealing with this is to allow the user to select which parts of the theme they want to load; for example in Windows 98, you could load the background and screensaver from a theme, but leave your icons and sounds untouched.
  
  Section::::Themed systems.
   Dark mode changes the desktop to a darkened color scheme, putting the focus on user content while interface elements and controls recede into the background. Built-in apps like Mail, Messages, Maps, Calendar and Photos include Dark mode designs. App developers can implement Dark mode in their apps via a public API.
  
  A limited dark mode that affected only the Dock, menu bar, and drop-down menus was previously introduced in OS X Yosemite.
  
  Section::::User interface.:Desktop.
   When theme support in the Appearance Control Panel was first announced, the team responsible for it demonstrated an automatic tool specifically designed to convert existing Kaleidoscope scheme files into Appearance Manager-compatible theme files. This tool was never released to the public.
   BULLET::::- Both BasICColor and EyeOne Match do not presently run under Linux but they are capable of creating a profile that does not require LUT adjustments.
   Parts of this technology are implemented in the operating system (OS), helper libraries, the application, and devices. A cross-platform view of color management is the use of an ICC-compatible color management system. The International Color Consortium (ICC) is an industry consortium that has defined:
  
  BULLET::::- An open standard for a "Color Matching Module" (CMM) at the OS level
  
  BULLET::::- color profiles for:
  
  BULLET::::- Devices, including devicelink-profiles that represent a complete color transformation from source device to target device
  
  BULLET::::- "Working spaces", the color spaces in which color data is meant to be manipulated
   Arbitrary gradient color scales, usually 256 shades, with no relationship with real colors of a given image. They are employed to artificially colorize a grayscale image to reveal details and/or to map the pixel level values to amounts of some physical magnitude (potential, temperature, altitude, etc.)
  
  Note, in the example above, that new details can be seen as blue over magenta in the background's dark areas of the original photograph.
  
  Here is the 8-bit, 256 color gradient palette used with the color test chart and the image sample above:
   BULLET::::- In GIMP 2.8, the Convert Image to Indexed Colors Option (Image"→"Mode"→"Indexed..) allows generation of an optimum palette with a choice in the number of colors from 2 to 256, the option of using a web-optimized palette, using a black and white palette (1 bit) or using a custom palette. It allows unused colors to be removed from the palette and it offers a variety of dithering options: None, Floyd-Steinberg (normal), Floyd-Steinberg (reduced color bleeding) and Positioned as well as the ability to enable dithering of transparency.
  
raw_presuppositions: Adding dark theme to an app/OS takes few color changes. Adding dark theme to an app/OS should only take a few color changes.
raw_corrections: Adding dark theme to an app/OS takes more than color changes which designers don't get enough time for. Designers often don't get enough time to plan inverting light theme to dark theme so that it can happen on the fly.