my_safecss_filter_attr( $css ); function my_safecss_filter_attr( $css= '' ) { // $css= wp_kses_no_null($css); // $css= str_replace( "\t", '',$css ); // $raindrops_css_properties['all_properties']= array(); $raindrops_css_properties['all_properties']['alignment-adjust']= 'CSS3.0'; $raindrops_css_properties['all_properties']['alignment-baseline']= 'CSS3.0'; $raindrops_css_properties['all_properties']['animation']= 'CSS3.0'; $raindrops_css_properties['all_properties']['animation-delay']= 'CSS3.0'; $raindrops_css_properties['all_properties']['animation-direction']= 'CSS3.0'; $raindrops_css_properties['all_properties']['animation-duration']= 'CSS3.0'; $raindrops_css_properties['all_properties']['animation-iteration-count']= 'CSS3.0'; $raindrops_css_properties['all_properties']['animation-name']= 'CSS3.0'; $raindrops_css_properties['all_properties']['animation-play-state']= 'CSS3.0'; $raindrops_css_properties['all_properties']['animation-timing-function']= 'CSS3.0'; $raindrops_css_properties['all_properties']['appearance']= 'CSS3.0'; $raindrops_css_properties['all_properties']['azimuth']= 'CSS3.0'; $raindrops_css_properties['all_properties']['backface-visibility']= 'CSS3.0'; $raindrops_css_properties['all_properties']['background']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['background-attachment']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['background-break']= 'CSS3.0'; $raindrops_css_properties['all_properties']['background-clip']= 'CSS3.0'; $raindrops_css_properties['all_properties']['background-color']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['background-image']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['background-origin']= 'CSS3.0'; $raindrops_css_properties['all_properties']['background-position']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['background-repeat']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['background-size']= 'CSS3.0'; $raindrops_css_properties['all_properties']['baseline-shift']= 'CSS3.0'; $raindrops_css_properties['all_properties']['binding']= 'CSS3.0'; $raindrops_css_properties['all_properties']['bleed']= 'CSS3.0'; $raindrops_css_properties['all_properties']['bookmark-label']= 'CSS3.0'; $raindrops_css_properties['all_properties']['bookmark-level']= 'CSS3.0'; $raindrops_css_properties['all_properties']['bookmark-state']= 'CSS3.0'; $raindrops_css_properties['all_properties']['bookmark-target']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-bottom']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-bottom-color']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-bottom-left-radius']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border-bottom-right-radius']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border-bottom-style']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-bottom-width']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-collapse']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-color']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-image']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border-image-outset']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border-image-repeat']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border-image-slice']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border-image-source']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border-image-width']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border-left']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-left-color']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-left-style']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-left-width']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-radius']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border-right']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-right-color']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-right-style']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-right-width']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-spacing']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-style']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-top']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-top-color']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-top-left-radius']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border-top-right-radius']= 'CSS3.0'; $raindrops_css_properties['all_properties']['border-top-style']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-top-width']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['border-width']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['bottom']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['box-align']= 'CSS3.0'; $raindrops_css_properties['all_properties']['box-decoration-break']= 'CSS3.0'; $raindrops_css_properties['all_properties']['box-direction']= 'CSS3.0'; $raindrops_css_properties['all_properties']['box-flex']= 'CSS3.0'; $raindrops_css_properties['all_properties']['box-flex-group']= 'CSS3.0'; $raindrops_css_properties['all_properties']['box-lines']= 'CSS3.0'; $raindrops_css_properties['all_properties']['box-ordinal-group']= 'CSS3.0'; $raindrops_css_properties['all_properties']['box-orient']= 'CSS3.0'; $raindrops_css_properties['all_properties']['box-pack']= 'CSS3.0'; $raindrops_css_properties['all_properties']['box-shadow']= 'CSS3.0'; $raindrops_css_properties['all_properties']['box-sizing']= 'CSS3.0'; $raindrops_css_properties['all_properties']['break-after']= 'CSS3.0'; $raindrops_css_properties['all_properties']['break-before']= 'CSS3.0'; $raindrops_css_properties['all_properties']['break-inside']= 'CSS3.0'; $raindrops_css_properties['all_properties']['caption-side']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['clear']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['clip']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['color']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['color-profile']= 'CSS3.0'; $raindrops_css_properties['all_properties']['column-count']= 'CSS3.0'; $raindrops_css_properties['all_properties']['column-fill']= 'CSS3.0'; $raindrops_css_properties['all_properties']['column-gap']= 'CSS3.0'; $raindrops_css_properties['all_properties']['column-rule']= 'CSS3.0'; $raindrops_css_properties['all_properties']['column-rule-color']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['column-rule-style']= 'CSS3.0'; $raindrops_css_properties['all_properties']['column-rule-width']= 'CSS3.0'; $raindrops_css_properties['all_properties']['column-span']= 'CSS3.0'; $raindrops_css_properties['all_properties']['column-width']= 'CSS3.0'; $raindrops_css_properties['all_properties']['columns']= 'CSS3.0'; $raindrops_css_properties['all_properties']['content']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['counter-increment']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['counter-reset']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['crop']= 'CSS3.0'; $raindrops_css_properties['all_properties']['cue']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['cue-after']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['cue-before']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['cursor']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['direction']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['display']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['dominant-baseline']= 'CSS3.0'; $raindrops_css_properties['all_properties']['drop-initial-after-adjust']= 'CSS3.0'; $raindrops_css_properties['all_properties']['drop-initial-after-align']= 'CSS3.0'; $raindrops_css_properties['all_properties']['drop-initial-before-adjust']= 'CSS3.0'; $raindrops_css_properties['all_properties']['drop-initial-before-align']= 'CSS3.0'; $raindrops_css_properties['all_properties']['drop-initial-size']= 'CSS3.0'; $raindrops_css_properties['all_properties']['drop-initial-value']= 'CSS3.0'; $raindrops_css_properties['all_properties']['elevation']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['empty-cells']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['fit']= 'CSS3.0'; $raindrops_css_properties['all_properties']['fit-position']= 'CSS3.0'; $raindrops_css_properties['all_properties']['float']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['float-offset']= 'CSS3.0'; $raindrops_css_properties['all_properties']['font']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['font-family']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['font-size']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['font-size-adjust']= 'CSS2.0,CSS3.0'; $raindrops_css_properties['all_properties']['font-stretch']= 'CSS3.0'; $raindrops_css_properties['all_properties']['font-style']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['font-variant']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['font-weight']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['grid-columns']= 'CSS3.0'; $raindrops_css_properties['all_properties']['grid-rows']= 'CSS3.0'; $raindrops_css_properties['all_properties']['hanging-punctuation']= 'CSS3.0'; $raindrops_css_properties['all_properties']['height']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['hyphenate-after']= 'CSS3.0'; $raindrops_css_properties['all_properties']['hyphenate-before']= 'CSS3.0'; $raindrops_css_properties['all_properties']['hyphenate-character']= 'CSS3.0'; $raindrops_css_properties['all_properties']['hyphenate-lines']= 'CSS3.0'; $raindrops_css_properties['all_properties']['hyphenate-resource']= 'CSS3.0'; $raindrops_css_properties['all_properties']['hyphens']= 'CSS3.0'; $raindrops_css_properties['all_properties']['icon']= 'CSS3.0'; $raindrops_css_properties['all_properties']['image-orientation']= 'CSS3.0'; $raindrops_css_properties['all_properties']['image-rendering']= 'CSS3.0'; $raindrops_css_properties['all_properties']['image-resolution']= 'CSS3.0'; $raindrops_css_properties['all_properties']['inline-box-align']= 'CSS3.0'; $raindrops_css_properties['all_properties']['left']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['letter-spacing']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['line-height']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['line-stacking']= 'CCSS3.0'; $raindrops_css_properties['all_properties']['line-stacking-ruby']= 'CSS3.0'; $raindrops_css_properties['all_properties']['line-stacking-shift']= 'CSS3.0'; $raindrops_css_properties['all_properties']['line-stacking-strategy']= 'CSS3.0'; $raindrops_css_properties['all_properties']['list-style']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['list-style-image']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['list-style-position']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['list-style-type']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['margin']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['margin-bottom']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['margin-left']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['margin-right']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['margin-top']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['mark']= 'CSS3.0'; $raindrops_css_properties['all_properties']['mark-after']= 'CSS3.0'; $raindrops_css_properties['all_properties']['mark-before']= 'CSS3.0'; $raindrops_css_properties['all_properties']['marks']= 'CSS2.0,CSS3.0'; $raindrops_css_properties['all_properties']['marquee-direction']= 'CSS3.0'; $raindrops_css_properties['all_properties']['marquee-play-count']= 'CSS3.0'; $raindrops_css_properties['all_properties']['marquee-speed']= 'CSS3.0'; $raindrops_css_properties['all_properties']['marquee-style']= 'CSS3.0'; $raindrops_css_properties['all_properties']['max-height']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['max-width']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['min-height']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['min-width']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['move-to']= 'CSS3.0'; $raindrops_css_properties['all_properties']['nav-down']= 'CSS3.0'; $raindrops_css_properties['all_properties']['nav-index']= 'CSS3.0'; $raindrops_css_properties['all_properties']['nav-left']= 'CSS3.0'; $raindrops_css_properties['all_properties']['nav-right']= 'CSS3.0'; $raindrops_css_properties['all_properties']['nav-up']= 'CSS3.0'; $raindrops_css_properties['all_properties']['opacity']= 'CSS3.0'; $raindrops_css_properties['all_properties']['orphans']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['outline']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['outline-color']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['outline-offset']= 'CSS3.0'; $raindrops_css_properties['all_properties']['outline-style']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['outline-width']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['overflow']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['overflow-style']= 'CSS3.0'; $raindrops_css_properties['all_properties']['overflow-x']= 'CSS3.0'; $raindrops_css_properties['all_properties']['overflow-y']= 'CSS3.0'; $raindrops_css_properties['all_properties']['padding']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['padding-bottom']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['padding-left']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['padding-right']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['padding-top']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['page']= 'CSS2.0,CSS3.0'; $raindrops_css_properties['all_properties']['page-break-after']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['page-break-before']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['page-break-inside']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['page-policy']= 'CSS3.0'; $raindrops_css_properties['all_properties']['pause']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['pause-after']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['pause-before']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['perspective']= 'CSS3.0'; $raindrops_css_properties['all_properties']['perspective-origin']= 'CSS3.0'; $raindrops_css_properties['all_properties']['phonemes']= 'CSS3.0'; $raindrops_css_properties['all_properties']['pitch']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['pitch-range']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['play-during']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['position']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['presentation-level']= 'CSS3.0'; $raindrops_css_properties['all_properties']['punctuation-trim']= 'CSS3.0'; $raindrops_css_properties['all_properties']['quotes']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['rendering-intent']= 'SS3.0'; $raindrops_css_properties['all_properties']['resize']= 'CSS3.0'; $raindrops_css_properties['all_properties']['rest']= 'CSS3.0'; $raindrops_css_properties['all_properties']['rest-after']= ',CSS3.0'; $raindrops_css_properties['all_properties']['rest-before']= 'CSS3.0'; $raindrops_css_properties['all_properties']['richness']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['right']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['rotation']= 'CSS3.0'; $raindrops_css_properties['all_properties']['rotation-point']= 'CSS3.0'; $raindrops_css_properties['all_properties']['ruby-align']= 'CSS3.0'; $raindrops_css_properties['all_properties']['ruby-overhang']= 'CSS3.0'; $raindrops_css_properties['all_properties']['ruby-position']= 'CSS3.0'; $raindrops_css_properties['all_properties']['ruby-span']= 'CSS3.0'; $raindrops_css_properties['all_properties']['size']= 'CSS2.0,CSS3.0'; $raindrops_css_properties['all_properties']['speak']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['speak-header']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['speak-numeral']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['speak-punctuation']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['speech-rate']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['stress']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['string-set']= 'CSS3.0'; $raindrops_css_properties['all_properties']['table-layout']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['target']= 'CSS3.0'; $raindrops_css_properties['all_properties']['target-name']= 'CSS3.0'; $raindrops_css_properties['all_properties']['target-new']= 'CSS3.0'; $raindrops_css_properties['all_properties']['target-position']= 'CSS3.0'; $raindrops_css_properties['all_properties']['text-align']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['text-align-last']= 'CSS3.0'; $raindrops_css_properties['all_properties']['text-decoration']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['text-emphasis']= 'CSS3.0'; $raindrops_css_properties['all_properties']['text-height']= 'CSS3.0'; $raindrops_css_properties['all_properties']['text-indent']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['text-justify']= 'CSS3.0'; $raindrops_css_properties['all_properties']['text-outline']= 'CSS3.0'; $raindrops_css_properties['all_properties']['text-shadow']= 'CSS2.0,CSS3.0'; $raindrops_css_properties['all_properties']['text-transform']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['text-wrap']= 'CSS3.0'; $raindrops_css_properties['all_properties']['top']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['transform']= 'CSS3.0'; $raindrops_css_properties['all_properties']['transform-origin']= 'CSS3.0'; $raindrops_css_properties['all_properties']['transform-style']= 'CSS3.0'; $raindrops_css_properties['all_properties']['transition']= 'CSS3.0'; $raindrops_css_properties['all_properties']['transition-delay']= 'CSS3.0'; $raindrops_css_properties['all_properties']['transition-duration']= 'CSS3.0'; $raindrops_css_properties['all_properties']['transition-property']= 'CSS3.0'; $raindrops_css_properties['all_properties']['transition-timing-function']= 'CSS3.0'; $raindrops_css_properties['all_properties']['unicode-bidi']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['vertical-align']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['visibility']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['voice-balance']= 'CSS3.0'; $raindrops_css_properties['all_properties']['voice-duration']= 'CSS3.0'; $raindrops_css_properties['all_properties']['voice-family']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['voice-pitch']= 'CSS3.0'; $raindrops_css_properties['all_properties']['voice-pitch-range']= 'CSS3.0'; $raindrops_css_properties['all_properties']['voice-rate']= 'CSS3.0'; $raindrops_css_properties['all_properties']['voice-stress']= 'CSS3.0'; $raindrops_css_properties['all_properties']['voice-volume']= 'CSS3.0'; $raindrops_css_properties['all_properties']['volume']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['white-space']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['white-space-collapse']= 'CSS3.0'; $raindrops_css_properties['all_properties']['widows']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['width']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['word-break']= 'CSS3.0'; $raindrops_css_properties['all_properties']['word-spacing']= 'CSS1.0,CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['word-wrap']= 'CSS3.0'; $raindrops_css_properties['all_properties']['z-index']= 'CSS2.0,CSS2.1,CSS3.0'; $raindrops_css_properties['all_properties']['filter']= 'IE8,CSS3.0'; $raindrops_css_properties['all_properties']['-ms-filter']= 'IE5, IE6, IE7,CSS3.0'; $raindrops_css_properties['all_properties']['pointer-events']= ' '; $raindrops_css_properties['vendor_prefix']['-moz-']= 'moz,CSS3.0'; $raindrops_css_properties['vendor_prefix']['-webkit-']= 'webkit,CSS3.0'; $raindrops_css_properties['vendor_prefix']['-o-']= 'opera,CSS3.0'; $raindrops_css_properties['vendor_prefix']['-ms-']= 'IE5, IE6, IE7,CSS3.0'; $raindrops_css_properties['vendor_prefix']['-khtml-']= ''; $raindrops_css_properties['at-rule']['charset']= 'CSS2.1'; $raindrops_css_properties['at-rule']['import']= 'CSS1,CSS2.1,Media Queries'; $raindrops_css_properties['at-rule']['media']= 'CSS3.0'; $raindrops_css_properties['at-rule']['page']= 'CSS2.1,CSS Paged Media Module Level 3'; $raindrops_css_properties['at-rule']['namespace']= 'CSS3 Namespaces Module'; $raindrops_css_properties['at-rule']['font-face']= 'CSS Fonts Module Level 3,WOFF File Format 1.0'; $raindrops_css_properties['at-rule']['document']= 'CSS3.0'; $raindrops_css_properties['at-rule']['supports']= 'CSS3.0'; $raindrops_css_properties['pseudo'][':first-child']= 'css2.1,CSS3,Pseudo-classes'; $raindrops_css_properties['pseudo'][':link']= 'css2.1 Pseudo-classes'; $raindrops_css_properties['pseudo'][':visited']= 'css2.1 Pseudo-classes'; $raindrops_css_properties['pseudo'][':hover']= 'css2.1 Pseudo-classes'; $raindrops_css_properties['pseudo'][':active']= 'css2.1 Pseudo-classes'; $raindrops_css_properties['pseudo'][':focus']= 'css2.1 Pseudo-classes'; $raindrops_css_properties['pseudo'][':lang']= 'css2.1,CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':first-line']= 'css2.1 pseudo-element'; $raindrops_css_properties['pseudo'][':first-letter']= 'css2.1 pseudo-element'; $raindrops_css_properties['pseudo'][':before']= 'css2.1 pseudo-element'; $raindrops_css_properties['pseudo'][':after']= 'css2.1 pseudo-element'; $raindrops_css_properties['pseudo'][':target']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':enabled']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':disabled']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':checked']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':indeterminate']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':root']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':nth-child']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':nth-last-child']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':nth-of-type']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':nth-last-of-type']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':last-child']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':first-of-type']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':last-of-type']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':only-child']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':only-of-type']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':empty']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':contains']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo'][':not']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo']['::first-line']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo']['::first-letter']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo']['::selection']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo']['::before']= 'CSS3 Pseudo-classes'; $raindrops_css_properties['pseudo']['::after']= 'CSS3 Pseudo-classes'; $pseudo_default= array( ':first-child', ':link', ':visited', ':hover', ':active', ':focus', ':lang', ':first-line', ':first-letter', ':before', ':after', ':target', ':enabled', ':disabled', ':checked', ':indeterminate', ':root', ':nth-child', ':nth-last-child', ':nth-of-type', ':nth-last-of-type', ':last-child', ':first-of-type', ':last-of-type', ':only-child', ':only-of-type', ':empty', ':contains', ':not', '::first-line', '::first-letter', '::selection', '::before', '::after', ); $pseudo_after= array( '%%first-child', '%%link', '%%visited', '%%hover', '%%active', '%%focus', '%%lang', '%%first-line', '%%first-letter', '%%before', '%%after', '%%target', '%%enabled', '%%disabled', '%%checked', '%%indeterminate', '%%root', '%%nth-child', '%%nth-last-child', '%%nth-of-type', '%%nth-last-of-type', '%%last-child', '%%first-of-type', '%%last-of-type', '%%only-child', '%%only-of-type', '%%empty', '%%contains', '%%not', '%%%%first-line', '%%%%first-letter', '%%%%selection', '%%%%before', '%%%%after', ); /** replace for simple regex * */ $copyed_css= str_replace( $pseudo_default, $pseudo_after, $css ); /** Rmove vendor prefix * */ $vendor_prefix= array('-moz-', '-webkit-', '-o-', '-ms-','-khtml-'); $copyed_css= str_replace( $vendor_prefix, '', $copyed_css ); /** Unicode string to HTML entities * Change q{content:'\201C';} to q{content:'&#x201C';} * shorthand not yet */ $bad= ''; $copyed_csses= explode ("\n", $copyed_css ); $result= ''; foreach( $copyed_csses as $val ) { $val_unicode= strstr($val, '\\'); $char= trim( $val_unicode,"\"';\\" ); if( ctype_xdigit($char) and $val_unicode !== false ) { $result .= str_replace( $char, $char , $val ); }else{ $result .= $val; if ( $val_unicode !== false ) { $bad .= "/* strange unicode {$val} */"; } } } $copyed_css= $result; /** Rmove comment * */ $copyed_css= preg_replace( '!(/\*.+\*/)?!','', $copyed_css ); /* Ruleset */ preg_match_all(" |([^/\*:{;@]+):([^;}]+) |", $copyed_css, $matches, PREG_SET_ORDER); foreach( $matches as $key=>$match ){ $rule= $match[0]; $key= trim( $match[1] ); $key= str_replace( $pseudo_after,$pseudo_default ,$key ); /* CSS property value sanitize */ $val= strip_tags( $match[2] ); /*CSS property Check*/ if ( isset( $key ) && isset( $raindrops_css_properties['all_properties'][ $key ] ) ) { $css= str_replace( $rule.';', "\n\t{$key}:{$val};", $css ); } else { preg_match( '!(^[^\s]+)\s!',$key, $regs ); $import_rule= $regs[1]; if( isset( $raindrops_css_properties['at-rule'][ $import_rule ] ) ) { } elseif ( $import_rule== false ) { $alert_val= str_replace( array('/*', '*/' ), '', $rule ); //$css= str_replace( $rule.';', '/*invalid:'. trim( $alert_val ).';*/', $css ); $bad .= "\n". '/*invalid: '. trim( $alert_val ).'; */'."\n"; } } } /* at rule */ preg_match_all(" |@([^\s]+)\s(.+){ |", $copyed_css, $selectors, PREG_SET_ORDER); foreach( $selectors as $key=>$val ) { $at_rules= trim( $val[0] ); $at_rules= str_replace( $pseudo_after,$pseudo_default , $at_rules ); $rule_name= trim( $val[1] ); if ( isset( $raindrops_css_properties['at-rule'][ $rule_name ] ) ) { } else { $bad .= $at_rules. "\n"; } } preg_match_all(" |}[^{]+:([A-z-:]+)[^{;]*{ |", $css, $pseudos, PREG_SET_ORDER); foreach( $pseudos as $val ) { $pseudo_keyword= ':'.trim($val[1]); if( ! isset( $raindrops_css_properties['pseudo'][ $pseudo_keyword ] ) ){ $alert_val= str_replace( array('/*', '*/' ), '', $pseudo_keyword ); $bad .= "\n". '/*invalid pseudo '. trim( $alert_val ).' */'."\n"; } } /* format */ $css= preg_replace( '!(\n{2,} |\t\n |\r\n{2,})!', "\n", $css ); $css= preg_replace( '!\t{2,}!', "\t", $css ); $css= preg_replace( '!(-\s*)!', "-", $css ); $css= preg_replace( '!\n{2,}!', "\n", $css ); $css= preg_replace( '! {2,}!', " ", $css ); $css= preg_replace( '!\s*}!', "}", $css ); /* indent @media */ $css_lines= explode ("\n", $css ); $indent = ''; $mark = false; $css = ''; foreach( $css_lines as $css_line ) { if( preg_match( '!}}$!', $css_line ) ) { $css .= str_replace( '}}',"\n\t}\n}\n",$css_line ); $indent= ''; } else { if( $indent== "\t" ) { $css .= $indent. str_replace( '}',"\n\t}", $css_line ). "\n"; }else{ $css .= $indent. $css_line. "\n"; } } if ( preg_match( '!^@!', $css_line ) ) { $indent= "\t"; } } //$css= preg_replace('/&#x([0-9a-z]{4})/', '\\\\u$1', $css ); $css= str_replace(';}',";\n}",$css ); echo trim( $css ); echo '/* has issue rules start */'; echo $bad; echo '/* has issue rules start */'; }