apeman-react-photo
Version:
apeman react package for photo components.
97 lines (89 loc) • 2.69 kB
JSX
/**
* Style for ApPaperPhoto.
* @class ApPaperPhotoStyle
*/
import React, {PropTypes as types} from 'react'
import {ApStyle} from 'apeman-react-style'
/** @lends ApPaperPhotoStyle */
const ApPaperPhotoStyle = React.createClass({
propTypes: {
style: types.object
},
getDefaultProps () {
return {
style: {}
}
},
statics: {
styleData (config) {
let shadowSize = 15
let shadowDense = 0.33
return {
all: {
'.ap-paper-photo': {
display: 'inline-block',
boxShadow: '1px 1px 2px rgba(0,0,0,0.33)',
border: '1px solid #E0E0E0',
borderRadius: '2px',
padding: '8px 8px 32px',
position: 'relative',
boxSizing: 'border-box',
backgroundColor: 'white'
},
'.ap-paper-photo-shadow': {
transform: 'rotate(-3deg)',
background: `none repeat scroll 0 0 rgba(0, 0, 0, ${shadowDense})`,
boxShadow: `0 ${shadowSize}px ${shadowSize}px rgba(0, 0, 0, ${shadowDense})`,
position: 'absolute',
top: 'auto',
bottom: `${shadowSize}px`,
width: '50%',
height: `${shadowSize}px`,
zIndex: '-1'
},
'.ap-paper-photo-shadow-right': {
transform: 'rotate(3deg)',
left: 'auto',
right: `${shadowSize / 2}px`
},
'.ap-paper-photo .ap-image': {
border: '1px solid #EEE',
position: 'relative',
zIndex: '1'
},
'.ap-paper-photo-text': {
position: 'absolute',
zIndex: '2'
},
'.ap-paper-photo.ap-photo-tappable': {
cursor: 'pointer'
},
'.ap-paper-photo.ap-photo-tappable:hover': {},
'.ap-paper-photo.ap-photo-tappable:hover .ap-paper-photo-shadow': {
boxShadow: `0 ${shadowSize + 1}px ${shadowSize}px rgba(0, 0, 0, ${shadowDense})`
},
'.ap-paper-photo.ap-photo-tappable:active': {
boxShadow: 'none'
},
'.ap-paper-photo.ap-photo-tappable:active .ap-paper-photo-shadow': {
display: 'none'
}
}
}
}
},
render () {
const s = this
let { props } = s
let { all, small, medium, large } = ApPaperPhotoStyle.styleData(props)
return (
<ApStyle data={ Object.assign(all, props.style) }
smallMediaData={ small }
mediumMediaData={ medium }
largeMediaData={ large }
>{ props.children }</ApStyle>
)
}
})
export default ApPaperPhotoStyle