Class: CSS::MediaQueries::Context
- Inherits:
-
Data
- Object
- Data
- CSS::MediaQueries::Context
- Defined in:
- lib/css/media_queries/context.rb
Overview
Holds the user-agent context against which a MediaQueryList is evaluated. Stored as a feature → value Hash; values follow Media Queries Level 4 conventions:
- lengths in CSS pixels (Numeric)
- resolution in dots-per-CSS-px (`dppx`, Numeric)
- identifier-valued features as Strings ("landscape", "dark", ...)
- boolean-style features as 1 / 0 or true / false
‘Context.default(**overrides)` returns a sensible desktop preset.
Constant Summary collapse
- DEFAULTS =
{ 'media-type' => 'screen', 'width' => 1024, 'height' => 768, 'device-width' => 1024, 'device-height' => 768, 'aspect-ratio' => 1024.0 / 768, 'device-aspect-ratio' => 1024.0 / 768, 'orientation' => 'landscape', 'resolution' => 1, # dppx 'color' => 8, 'color-gamut' => 'srgb', 'color-index' => 0, 'monochrome' => 0, 'grid' => 0, 'scan' => 'progressive', 'update' => 'fast', 'overflow-block' => 'scroll', 'overflow-inline' => 'scroll', 'pointer' => 'fine', 'hover' => 'hover', 'any-pointer' => 'fine', 'any-hover' => 'hover', 'prefers-color-scheme' => 'light', 'prefers-reduced-motion' => 'no-preference', 'prefers-contrast' => 'no-preference', 'forced-colors' => 'none' }.freeze
Instance Attribute Summary collapse
-
#features ⇒ Object
readonly
Returns the value of attribute features.
Class Method Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#features ⇒ Object (readonly)
Returns the value of attribute features
13 14 15 |
# File 'lib/css/media_queries/context.rb', line 13 def features @features end |
Class Method Details
.default(**overrides) ⇒ Object
22 23 24 |
# File 'lib/css/media_queries/context.rb', line 22 def self.default(**overrides) new(features: DEFAULTS.merge(overrides.transform_keys(&:to_s))) end |
Instance Method Details
#[](name) ⇒ Object
14 |
# File 'lib/css/media_queries/context.rb', line 14 def [](name) = features[name.to_s] |
#media_type ⇒ Object
16 |
# File 'lib/css/media_queries/context.rb', line 16 def media_type = self['media-type'] |
#with(**overrides) ⇒ Object
18 19 20 |
# File 'lib/css/media_queries/context.rb', line 18 def with(**overrides) Context.new(features: features.merge(overrides.transform_keys(&:to_s))) end |