# Changelog ## 1.0.0.alpha.1 (unreleased) ### Resolved Issues: - support Sass 3.3.0 and Compass 1.0.0 - `content` is no longer improperly quoted if not needed - fix for IE7 `:before` glyphs not being positioned correctly - fix for IE7 potentially crashing with `Operation Aborted` due to glyph injection ### New Features: - added `$CONFIG_STATE_BEM` and `$CONFIG_BEM_MODIFIER_SEPARATOR` to generate [BEM style state selectors](http://bem.info/method/) - added `$CONFIG_BEM_ELEMENT_SEPARATOR` and `bem` mixin - added `bem-selector` function to help compute the BEM style selector for a context - added `str-replace` function for simple Sass::Script::Value::String replacements - added `$CONFIG_THEME_EXCLUDE` takes a list of components that will be excluded (not registered) - added `switch-locale` mixin to switch the interface locale - styleguides now support registering maps - `to-styles` now takes a map (but still supports a key-value paired list) - improved debugging messages generated by `styleguide` and `styleguide-diff` - `glyph-icons` mixin now supports multiple glyph libraries as well as multiple grid sizes via `$CONFIG_GLYPHS_LIBRARIES` - `glyph-icons` mixin now supports multiple glyph icons on one element - added `glyph-icons` function to help with retrieving glyph info (returned in a map for access) - added `$CONFIG_GLYPHS_OUTPUT_FALLBACK` config - added `archetype migrate` command line action to test for migration/back-compat issues - improved locale functionality, including - support for more complex formats. e.g. `sr_SP@Cyrillic` - new methods to extract a piece of a locale: `locale-language`, `locale-territory`, `locale-modifier` - added `derived-style` and `styleguide-derived-style` for extracting individual style rules from maps of styles or styleguide components - improved memoizer scheme with option for `:aggressive` memoizing - added `-archetype-list` to mimic the deprecated `-compass-list` - added `$CONFIG_NAMESPACE` to allow namespacing global generated CSS (keyframes, font-face, etc) - added `high-resolution` mixin for scoping high resolution (HiDPI / retina) code - added `resolution-to-*` functions for converting between various resolution types (ratio, dppx, dpi, dpcm) - `resolution_to_x`, `resolution-to-ratio`, `resolution-to-dppx`, `resolution-to-dpi`, `resolution-to-dpcm` - added `to-fraction` function for converting a decimal number to a fractional representation (e.g. `1.5` -> `3/2`) - added `list-join` function for joining a list into a string - added `archetype-meta` function to retrieve values set on `$CONFIG_META` or `Compass.configuration.archetype_meta` - added `register-breakpoint` and `get-breakpoint` functions for registering / retrieving breakpoint definitions - added `breakpoint` mixin for creating breakpoint media queries - added `switch-locale` function to assist switching locale states - added helper functions for working with Archetype modules: `register-archetype-module`, `has-archetype-modules`, `require-archetype-modules` - added `runtime-locale-value` for decorating a map so we can compute it's value respective to the locale at runtime (better support for `switch-locale`) - e.g. `runtime-locale-value((default: a, en_US: b, ru_RU: c, ...))` - added `get-runtime-locale-value` for selecting the value based on the current locale. this should be in conjunction with `runtime-locale-value` - added `register-glyph-library`, `get-glyph-library`, and `get-all-glyph-libraries` functions for registering / retrieving glyph icon libraries - added `before` and `after` mixins to ease the pain in styling `:before` and `:after` elements cross-browser - allow `target-browser` and `target-os` to accept a map of property-value pairs ### Major Changes: - dropped support for older versions of Sass/Compass (sorry, can't pass up the new feature set) - removed `gradient-with-deg` mixin - removed `_isLegacySupported` function - `inline-block` in styleguide component has changed syntax to take proper arguments - dropped `gradient` from supported keywords in styleguide components (use `background-image` instead) - `$CORE_STATE_MAPPINGS` and `$CONFIG_STATE_MAPPINGS` are now proper Sass maps - `styleguide` function now has the same signature as the mixin and can take multiple definitions at once - `styleguide-diff` now takes two `styleguide` results as params - removed `testing` configuration, instead check for `defined?(ArchetypeTestHelpers)` - removed `$CONFIG_GLYPHS_NAME`, `$CONFIG_GLYPHS_VERSION`, `$CONFIG_GLYPHS_SVG_ID`, `$CONFIG_GLYPHS_BASE_PATH`, `$CONFIG_GLYPHS_EOT`, `$CONFIG_GLYPHS_FILES`, `$CONFIG_GLYPHS_THRESHOLD`, `$CORE_GLYPHS_MAPPINGS`, `$CONFIG_GLYPHS_MAPPINGS` and instead merged these configs into `$CORE_GLYPHS_LIBRARIES` and `$CONFIG_GLYPHS_LIBRARIES` - removed all RTL functions - `styleguide-sprite*` and `styleguide-image*` functions have been replaced with private methods (`-archetype-sprite*`, `-archetype-image*`) - ported many functions to ruby instead of defined as Sass user functions - glyph icon mappings now take a map (optionally) of format `(char: characterCode, size: defaultSize)` (note that the previous list support is now deprecated) - Archetype has now been split into smaller projects - the core will provide the most widely used functions/mixins with much opinion on your generated CSS - things that are more specialized, opinionated, or heavy-handed have been moved to extensions, these extensions currently include: - `archetype-grid` - `archetype-theme` - `archetype-base` - `archetype-base-h5bp` - `archetype-base-normalize` - `archetype-base-reset` - `archetype-base-hybrid` - the goal of this split is to provide consumers with the most useful and non-intrusive features upfront while still offering (via extension) the robustness we've already built ## 0.0.1.pre.3 (pre-released) ### New Features: - added `styleguide-component-exists` method to check if a component/extension has already been registered in the theme - added `memoize` compiler configuration to allow enabling/disabling the internal styleguide memoizer - `glyph-icon` can now take `false` as an icon name and not output anything - added `unstyled-button` method to remove default styling from a `