/** * Copyright (C) 2014-2017 Philip Helger (www.helger.com) * philip[at]helger[dot]com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.helger.css; import javax.annotation.Nonnull; import javax.annotation.Nullable; import com.helger.commons.annotation.Nonempty; import com.helger.commons.id.IHasID; import com.helger.commons.lang.EnumHelper; import com.helger.commons.string.StringHelper; /** * Enumeration containing all W3C CSS specifications.<br> * Source: https://www.w3.org/Style/CSS/current-work.en.html<br> * Last update: 2017-04-05<br> * For regular CSS parsing/writing this enum has no impact!<br> * <br> * Run MainCreateSupportedCSSPropertiesFile after changing something here!! * * @author Philip Helger */ public enum ECSSSpecification implements IHasID <String> { /** CSS Color Level 3 */ CSS3_COLOR ("css3-color", ECSSSpecificationStatus.COMPLETED, "http://www.w3.org/TR/2011/REC-css3-color-20110607/"), /** CSS Namespaces */ CSS3_NAMESPACE ("css3-namespace", ECSSSpecificationStatus.COMPLETED, "https://www.w3.org/TR/2014/REC-css-namespaces-3-20140320/"), /** Selectors Level 3 */ SELECTORS ("selectors", ECSSSpecificationStatus.COMPLETED, "http://www.w3.org/TR/2011/REC-css3-selectors-20110929/"), /** CSS Level 2 Revision 1 */ CSS2 ("CSS2", ECSSSpecificationStatus.COMPLETED, "http://www.w3.org/TR/2011/REC-CSS2-20110607"), /** CSS Level 1 */ CSS1 ("CSS1", ECSSSpecificationStatus.COMPLETED, "http://www.w3.org/TR/2008/REC-CSS1-20080411"), /** CSS Print Profile */ CSS_PRINT ("css-print", ECSSSpecificationStatus.COMPLETED, "http://www.w3.org/TR/2013/NOTE-css-print-20130314/"), /** Media Queries */ CSS3_MEDIAQUERIES ("css3-mediaqueries", ECSSSpecificationStatus.COMPLETED, "http://www.w3.org/TR/2012/REC-css3-mediaqueries-20120619/"), /** CSS Style Attributes */ CSS_STYLE_ATTR ("css-style-attr", ECSSSpecificationStatus.COMPLETED, "http://www.w3.org/TR/2013/REC-css-style-attr-20131107/"), /** CSS Backgrounds and Borders Level 3 */ CSS3_BACKGROUND ("css3-background", ECSSSpecificationStatus.STABLE, "http://www.w3.org/TR/2014/CR-css3-background-20140909/"), /** CSS Conditional Rules Level 3 */ CSS3_CONDITIONAL ("css3-conditional", ECSSSpecificationStatus.STABLE, "http://www.w3.org/TR/2013/CR-css3-conditional-20130404/"), /** CSS Multi-column Layout */ CSS3_MULTICOL ("css3-multicol", ECSSSpecificationStatus.STABLE, "http://www.w3.org/TR/2011/CR-css3-multicol-20110412/"), /** CSS Values and Units Level 3 */ CSS_VALUES_3 ("css-values-3", ECSSSpecificationStatus.STABLE, "https://www.w3.org/TR/2016/CR-css-values-3-20160929/"), /** CSS Cascading and Inheritance Level 3 */ CSS_CASCADE_3 ("css-cascade-3", ECSSSpecificationStatus.STABLE, "http://www.w3.org/TR/2016/CR-css-cascade-3-20160519/"), /** CSS Image Values and Replaced Content Level 3 */ CSS3_IMAGES ("css3-images", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2012/CR-css3-images-20120417/"), /** CSS Speech */ CSS3_SPEECH ("css3-speech", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2012/CR-css3-speech-20120320/"), /** CSS Flexible Box Layout */ CSS_FLEXBOX_1 ("css-flexbox-1", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2016/CR-css-flexbox-1-20160526/"), /** CSS Text Decoration Module Level 3 */ CSS_TEXT_DECOR_3 ("css-text-decor-3", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2013/CR-css-text-decor-3-20130801/"), /** CSS Fonts Level 3 */ CSS_FONTS_3 ("css-fonts-3", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2013/CR-css-fonts-3-20131003/"), /** CSS Writing Modes Level 3 */ CSS_WRITING_MODES_3 ("css-writing-modes-3", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2015/CR-css-writing-modes-3-20151215/"), /** CSS Shapes Module Level 1 */ CSS_SHAPES_1 ("css-shapes-1", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2014/CR-css-shapes-1-20140320/"), /** CSS Masking Module Level 1 */ CSS_MASKING_1 ("css-masking-1", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2014/CR-css-masking-1-20140826/"), /** CSS Counter Styles Level 3 */ CSS_COUNTER_STYLES_3 ("css-counter-styles-3", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2015/CR-css-counter-styles-3-20150611/"), /** CSS Fragmentation Level 3 */ CSS_BREAK_3 ("css-break-3", ECSSSpecificationStatus.TESTING, "https://www.w3.org/TR/2017/CR-css-break-3-20170209/"), /** Compositing and Blending */ COMPOSITING_1 ("compositing-1", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2015/CR-compositing-1-20150113/"), /** CSS Syntax Level 3 */ CSS_SYNTAX_3 ("css-syntax-3", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2014/CR-css-syntax-3-20140220/"), /** CSS Grid Layout */ CSS_GRID_1 ("css-grid-1", ECSSSpecificationStatus.TESTING, "https://www.w3.org/TR/2017/CR-css-grid-1-20170209/"), /** CSS Basic User Interface Level 3 */ CSS_UI_3 ("css-ui-3", ECSSSpecificationStatus.TESTING, "https://www.w3.org/TR/2017/CR-css-ui-3-20170302/"), /** Geometry Interfaces Module Level 1 */ GEOMETRY_1 ("geometry-1", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2014/CR-geometry-1-20141125/"), /** CSS Cascading and Inheritance Level 4 */ CSS_CASCADE_4 ("css-cascade-4", ECSSSpecificationStatus.TESTING, "http://www.w3.org/TR/2016/CR-css-cascade-4-20160114/"), /** CSS Scroll Snap Module Level 1 */ CSS_SCROLL_SNAP_1 ("css-scroll-snap-1", ECSSSpecificationStatus.TESTING, "https://www.w3.org/TR/2017/CR-css-scroll-snap-1-20170209/"), /** CSS Animations */ CSS3_ANIMATIONS ("css3-animations", ECSSSpecificationStatus.REFINING, "http://www.w3.org/TR/2013/WD-css3-animations-20130219/"), /** Web Animations */ WEB_ANIMATIONS ("web-animations", ECSSSpecificationStatus.REFINING, "https://www.w3.org/TR/2016/WD-web-animations-1-20160913//"), /** CSS Text Level 3 */ CSS_TEXT_3 ("css-text-3", ECSSSpecificationStatus.REFINING, "http://www.w3.org/TR/2013/WD-css-text-3-20131010/"), /** CSS Transforms Module Level 1 */ CSS_TRANSFORMS_1 ("css-transforms-1", ECSSSpecificationStatus.REFINING, "http://www.w3.org/TR/2013/WD-css-transforms-1-20131126/"), /** CSS Transitions */ CSS3_TRANSITIONS ("css3-transitions", ECSSSpecificationStatus.REFINING, "http://www.w3.org/TR/2013/WD-css3-transitions-20131119/"), /** Cascading Variables */ CSS_VARIABLES_1 ("css-variables-1", ECSSSpecificationStatus.REFINING, "http://www.w3.org/TR/2015/CR-css-variables-1-20151203/"), /** CSS Box Alignment Module Level 3 */ CSS_ALIGN_3 ("css-align-3", ECSSSpecificationStatus.REFINING, "https://www.w3.org/TR/2017/WD-css-align-3-20170215/"), /** CSS Will Change */ CSS_WILL_CHANGE_1 ("css-will-change-1", ECSSSpecificationStatus.REFINING, "http://www.w3.org/TR/2015/CR-css-will-change-1-20151203/"), /** Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification */ CSS22 ("css22", ECSSSpecificationStatus.REFINING, "http://www.w3.org/TR/2016/WD-CSS22-20160412/"), /** CSS Paged Media Level 3 */ CSS3_PAGE ("css3-page", ECSSSpecificationStatus.REVISING, "http://www.w3.org/TR/2013/WD-css3-page-20130314/"), /** CSSOM View */ CSSOM_VIEW_1 ("cssom-view-1", ECSSSpecificationStatus.REVISING, "http://www.w3.org/TR/2016/WD-cssom-view-1-20160317/"), /** Selectors Level 4 */ SELECTORS4 ("selectors4", ECSSSpecificationStatus.REVISING, "http://www.w3.org/TR/2013/WD-selectors4-20130502/"), /** CSS Intrinsic & Extrinsic Sizing Module Level 3 */ CSS_SIZING_3 ("css-sizing-3", ECSSSpecificationStatus.REVISING, "://www.w3.org/TR/2017/WD-css-sizing-3-20170207/"), /** CSS Overflow Module Level 3 */ CSS_OVERFLOW_3 ("css-overflow-3", ECSSSpecificationStatus.REVISING, "http://www.w3.org/TR/2016/WD-css-overflow-3-20160531/"), /** CSS Display Module Level 3 */ CSS_DISPLAY_3 ("css-display-3", ECSSSpecificationStatus.REVISING, "https://www.w3.org/TR/2017/WD-css-display-3-20170126/"), /** CSS Pseudo-Elements Module Level 4 */ CSS_PSEUDO_4 ("css-pseudo-4", ECSSSpecificationStatus.REVISING, "http://www.w3.org/TR/2016/WD-css-pseudo-4-20160607/"), /** CSS Backgrounds and Borders Level 4 */ CSS4_BACKGROUND ("css4-background", ECSSSpecificationStatus.EXPLORING), /** CSS Device Adaptation Module Level 1 */ CSS_DEVICE_ADAPT_1 ("css-device-adapt-1", ECSSSpecificationStatus.EXPLORING, "ttp://www.w3.org/TR/2016/WD-css-device-adapt-1-20160329/"), /** CSS Exclusions Module Level 1 */ CSS3_EXCLUSIONS ("css3-exclusions", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2015/WD-css3-exclusions-20150115/"), /** Filter Effects Module Level 1 */ FILTER_EFFECTS_1 ("filter-effects-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2014/WD-filter-effects-1-20141125/"), /** CSS Generated Content for Paged Media */ CSS_GCPM_3 ("css-gpcm-3", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2014/WD-css-gcpm-3-20140513/"), /** CSS Page Floats */ PAGE_FLOATS ("page-floats", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2015/WD-css-page-floats-3-20150915/"), /** CSS Template Layout Module */ CSS_TEMPLATE_3 ("css-template-3", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2015/NOTE-css-template-3-20150326/"), /** CSS Line Grid Module Level 1 */ CSS_LINE_GRID_1 ("css-line-grid-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2014/WD-css-line-grid-1-20140916/"), /** CSS Lists and Counters Module Level 3 */ CSS_LISTS_3 ("css-lists-3", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2014/WD-css-lists-3-20140320/"), /** CSS Positioned Layout Level 3 */ CSS_POSITION_3 ("css-position-3", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2016/WD-css-position-3-20160517/"), /** CSS Regions Module Level 1 */ CSS_REGIONS_1 ("css-regions-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2014/WD-css-regions-1-20141009/"), /** CSS Ruby Layout Module Level 1 */ CSS_RUBY_1 ("css-ruby-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2014/WD-css-ruby-1-20140805/"), /** CSS Table Module Level 3 */ CSS_TABLES_3 ("css-tables-3", ECSSSpecificationStatus.EXPLORING, "https://www.w3.org/TR/2017/WD-css-tables-3-20170307/"), /** CSS Object Model (CSSOM) */ CSSOM_1 ("cssom-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2016/WD-cssom-1-20160317/"), /** CSS Font Loading Module Level 3 */ CSS_FONT_LOADING_3 ("css-font-loading-3", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2014/WD-css-font-loading-3-20140522/"), /** CSS Scoping Module Level 1 */ CSS_SCOPING_1 ("css-scoping-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2014/WD-css-scoping-1-20140403/"), /** Media Queries Level 4 */ MEDIAQUERIES_4 ("mediaqueries-4", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2016/WD-mediaqueries-4-20160706/"), /** Non-element Selectors Module Level 1 */ SELECTORS_NONELEMENT_1 ("selectors-nonelement-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2014/WD-selectors-nonelement-1-20140603/"), /** CSS Inline Layout Module Level 3 */ CSS_INLINE_3 ("css-inline-3", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2016/WD-css-inline-3-20160524/"), /** Motion Path Module Level 1 */ MOTION_1 ("motion-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2015/WD-motion-1-20150409/"), /** CSS Round Display Level 1 */ CSS_ROUND_DISPLAY_1 ("css-round-display-1", ECSSSpecificationStatus.EXPLORING, "https://www.w3.org/TR/2016/WD-css-round-display-1-20161222/"), /** CSS Basic User Interface Module Level 4 */ CSS_UI_4 ("css-ui-4", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2015/WD-css-ui-4-20150922/"), /** CSS Text Module Level 4 */ CSS_TEXT_4 ("css-text-4", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2015/WD-css-text-4-20150922/"), /** CSS Painting API Level 1 */ CSS_PAINT_API_1 ("css-paint-api-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2016/WD-css-paint-api-1-20160607/"), /** CSS Properties and Values API Level 1 */ CSS_PROPERTIES_VALUES_API_1 ("css-properties-values-api-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2016/WD-css-properties-values-api-1-20160607/"), /** CSS Typed OM Level 1 */ CSS_TYPED_OM_1 ("css-typed-om-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2016/WD-css-typed-om-1-20160607/"), /** Worklets Level 1 */ WORKLETS_1 ("worklets-1", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2016/WD-worklets-1-20160607/"), /** CSS Color Module Level 4 */ CSS_COLOR_4 ("css-color-4", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2016/WD-css-color-4-20160705/"), /** CSS Fonts Level 4 */ CSS_FONTS_4 ("css-fonts-4", ECSSSpecificationStatus.EXPLORING), /** CSS Rhythmic Sizing */ CSS_RHYTHM_1 ("css-rhythm-1", ECSSSpecificationStatus.EXPLORING, "https://www.w3.org/TR/2017/WD-css-rhythm-1-20170302/"), /** CSS Image Values and Replaced Content Module Level 4 */ CSS4_IMAGES ("css4-images", ECSSSpecificationStatus.EXPLORING, "http://www.w3.org/TR/2012/WD-css4-images-20120911/"), /** CSS Basic Box Model Level 3 */ CSS3_BOX ("css3-box", ECSSSpecificationStatus.REWRITING), /** CSS Generated Content Level 3 */ CSS3_CONTENT ("css3-content", ECSSSpecificationStatus.REWRITING, "http://www.w3.org/TR/2003/WD-css3-content-20030514/"), /** CSS Mobile Profile 2.0 - Abandoned */ @Deprecated CSS_MOBILE ("css-mobile", ECSSSpecificationStatus.ABANDONED, "http://www.w3.org/TR/2014/NOTE-css-mobile-20141014/"), /** The CSS 'Reader' Media Type - Abandoned */ @Deprecated CSS3_READER ("css3-reader", ECSSSpecificationStatus.ABANDONED), /** CSS Presentation Levels - Abandoned */ @Deprecated CSS3_PRESLEV ("css3-preslev", ECSSSpecificationStatus.ABANDONED), /** CSS TV Profile 1.0 - Abandoned */ @Deprecated CSS_TV ("css-tv", ECSSSpecificationStatus.ABANDONED), /** CSS Marquee - Abandoned */ @Deprecated CSS3_MARQUEE ("css3-marquee", ECSSSpecificationStatus.ABANDONED, "http://www.w3.org/TR/2014/NOTE-css3-marquee-20141014/"), /** Behavioral Extensions to CSS - Abandoned */ @Deprecated BECSS ("becss", ECSSSpecificationStatus.ABANDONED), /** CSS Hyperlink Presentation - Abandoned */ @Deprecated CSS3_HYPERLINKS ("css3-hyperlinks", ECSSSpecificationStatus.ABANDONED, "http://www.w3.org/TR/2004/WD-css3-hyperlinks-20040224/"), /** CSS Grid Positioning - Abandoned */ @Deprecated CSS3_GRID ("css3-grid", ECSSSpecificationStatus.ABANDONED, "http://www.w3.org/TR/2007/WD-css3-grid-20070905/"), /** Fullscreen - Abandoned */ @Deprecated FULLSCREEN ("fullscreen", ECSSSpecificationStatus.ABANDONED, "http://www.w3.org/TR/2014/NOTE-fullscreen-20141118/"), /** Dummy specification that means outside of CSS specified */ OUTSIDE_CSS ("$outside$", ECSSSpecificationStatus.OUTSIDE_CSS); private final String m_sID; private final ECSSSpecificationStatus m_eStatus; private final String m_sHandledURL; private ECSSSpecification (@Nonnull @Nonempty final String sID, @Nonnull final ECSSSpecificationStatus eStatus) { this (sID, eStatus, null); } private ECSSSpecification (@Nonnull @Nonempty final String sID, @Nonnull final ECSSSpecificationStatus eStatus, @Nullable final String sHandledURL) { m_sID = sID; m_eStatus = eStatus; m_sHandledURL = sHandledURL; } @Nonnull @Nonempty public String getID () { return m_sID; } @Nonnull public ECSSSpecificationStatus getStatus () { return m_eStatus; } public boolean hasHandledURL () { return StringHelper.hasText (m_sHandledURL); } @Nullable public String getHandledURL () { return m_sHandledURL; } @Nullable public static ECSSSpecification getFromIDOrNull (@Nullable final String sName) { return EnumHelper.getFromIDOrNull (ECSSSpecification.class, sName); } }