curls
Version:
💪 Responsive, expressive UI primitives for React written with Style Hooks and Emotion
167 lines (158 loc) • 3.82 kB
JavaScript
exports.__esModule = true
exports.ellipsis = exports.antialias = exports.optimizeFor = exports.aligned = exports.color = exports.lineHeight = exports.family = exports.size = exports.weight = void 0
var _core = require('@emotion/core')
var _utils = require('../utils')
var dT = _interopRequireWildcard(require('./defaultTheme'))
function _interopRequireWildcard(obj) {
if (obj && obj.__esModule) {
return obj
} else {
var newObj = {}
if (obj != null) {
for (var key in obj) {
if (Object.prototype.hasOwnProperty.call(obj, key)) {
var desc =
Object.defineProperty && Object.getOwnPropertyDescriptor
? Object.getOwnPropertyDescriptor(obj, key)
: {}
if (desc.get || desc.set) {
Object.defineProperty(newObj, key, desc)
} else {
newObj[key] = obj[key]
}
}
}
}
newObj.default = obj
return newObj
}
}
const weight = {
'100': {
name: 'nudg5n',
styles: 'font-weight:100;',
},
'200': {
name: '1jdtvb9',
styles: 'font-weight:200;',
},
'300': {
name: 'kaq1dv',
styles: 'font-weight:300;',
},
'400': {
name: 'pelz90',
styles: 'font-weight:400;',
},
'500': {
name: '10rvbm3',
styles: 'font-weight:500;',
},
'600': {
name: '35ezg3',
styles: 'font-weight:600;',
},
'700': {
name: '1vg6q84',
styles: 'font-weight:700;',
},
'800': {
name: 'ty7r4z',
styles: 'font-weight:800;',
},
'900': {
name: 'fdajvm',
styles: 'font-weight:900;',
},
}
exports.weight = weight
const size = (0, _utils.memoTheme)((size, theme) => {
let scale = (0, _utils.get)(theme.text, 'scale', dT),
fontSize = scale[size],
typeOfFontSize = typeof fontSize
if (typeOfFontSize === 'function') fontSize = fontSize(theme)
else if (typeOfFontSize !== 'object')
fontSize =
/*#__PURE__*/
(0, _core.css)(
'font-size:',
(0, _utils.unit)(fontSize, (0, _utils.get)(theme.text, 'sizeUnit', dT)),
';'
)
const isLeg = (0, _utils.get)(theme.text, 'legible', dT).indexOf(size) > -1
return (
/*#__PURE__*/
(0, _core.css)(
fontSize,
';',
optimizeFor[isLeg ? 'legibility' : 'speed'],
';',
isLeg && antialias,
';'
)
)
})
exports.size = size
const family = (0, _utils.memoTheme)((v, t) =>
/*#__PURE__*/
(0, _core.css)(
'font-family:',
(0, _utils.get)(t.text, 'families', dT)[v] || v,
';'
)
)
exports.family = family
const lineHeight = (0, _utils.memoValue)(v =>
/*#__PURE__*/
(0, _core.css)('line-height:', v, ';')
)
exports.lineHeight = lineHeight
const color = (v, t) => (0, _utils.colorize)('color', v, t) // colorize implements nullIfFalse
exports.color = color
const aligned = {
left: {
name: '13brihr',
styles: 'text-align:left;',
},
center: {
name: 'xi606m',
styles: 'text-align:center;',
},
right: {
name: 's2uf1z',
styles: 'text-align:right;',
},
justified: {
name: 'tpvos8',
styles: 'text-align:justify;',
},
inherit: {
name: '10kv7gu',
styles: 'text-align:inherit;',
},
}
exports.aligned = aligned
const optimizeFor = {
speed: {
name: 'bbtsvy',
styles: 'text-rendering:speed;',
},
legibility: {
name: 'af5abj',
styles: 'text-rendering:optimizeLegibility;',
},
},
antialias = {
name: '5258a8',
styles:
'-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;',
},
ellipsis = {
name: '43f8d8',
styles:
'max-width:100%;text-overflow:ellipsis;white-space:nowrap;overflow-x:hidden;',
}
exports.ellipsis = ellipsis
exports.antialias = antialias
exports.optimizeFor = optimizeFor