// The classes in this file are all related to a Runtime Filter feature detailed // in RFC 27. A short summary of how they work can be summarized by: // // They all are invisible by default. Only after the `initializeRuntime()` code // adds the context to the data-runtime attribute to the body element is when // elements with these classes become visible. // // More thorough context can be found in: https://github.com/forem/rfcs/pull/27 // Elements with all of these classes are not visible by default .ForemWebView-only, .ForemWebView-iOS-only, .ForemWebView-Android-only, .Desktop-only, .Browser-only, .Browser-iOS-only, .Browser-Android-only, .Browser-macOS-only, .Browser-Windows-only, .Browser-Linux-only { display: none; } // Elements with class 'ForemWebView' should be visible on any attribute that // matches that Medium regardless of OS body[data-runtime='ForemWebView-iOS'] .ForemWebView-only, body[data-runtime='ForemWebView-Android'] .ForemWebView-only { display: var(--runtime-display, block); } // Elements that need to match both 'ForemWebView' Medium and OS body[data-runtime='ForemWebView-iOS'] .ForemWebView-iOS-only, body[data-runtime='ForemWebView-Android'] .ForemWebView-Android-only { display: var(--runtime-display, block); } // Elements that will be presented on Desktop but not mobile OS's body[data-runtime$='Windows'] .Desktop-only, body[data-runtime$='Linux'] .Desktop-only, body[data-runtime$='macOS'] .Desktop-only { display: var(--runtime-display, block); } // Elements with class 'Browser' should be visible on any attribute that // matches that Medium regardless of OS body[data-runtime='Browser-Android'] .Browser-only, body[data-runtime='Browser-iOS'] .Browser-only, body[data-runtime='Browser-Linux'] .Browser-only, body[data-runtime='Browser-Windows'] .Browser-only, body[data-runtime='Browser-macOS'] .Browser-only { display: var(--runtime-display, block); } // Elements that need to match both 'Browser' Medium and OS body[data-runtime='Browser-Android'] .Browser-Android-only, body[data-runtime='Browser-iOS'] .Browser-iOS-only, body[data-runtime='Browser-Linux'] .Browser-Linux-only, body[data-runtime='Browser-Windows'] .Browser-Windows-only, body[data-runtime='Browser-macOS'] .Browser-macOS-only { display: var(--runtime-display, block); }