UNPKG

2.86 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _templateObject = _taggedTemplateLiteral(['\n font-family: ', ';\n line-height: 1.25;\n margin-top: 0;\n margin-bottom: 1em;\n letter-spacing: 0.01em;\n\n font-size: ', ';\n\n ', '\n\n ', '\n\n ', '\n\n\n\n '], ['\n font-family: ', ';\n line-height: 1.25;\n margin-top: 0;\n margin-bottom: 1em;\n letter-spacing: 0.01em;\n\n font-size: ', ';\n\n ', '\n\n ', '\n\n ', '\n\n\n\n ']),
8 _templateObject2 = _taggedTemplateLiteral(['\n font-size: ', ';\n '], ['\n font-size: ', ';\n ']);
9
10var _styledComponents = require('styled-components');
11
12var _styledComponents2 = _interopRequireDefault(_styledComponents);
13
14var _react = require('react');
15
16var _react2 = _interopRequireDefault(_react);
17
18var _media = require('../library/media');
19
20var _media2 = _interopRequireDefault(_media);
21
22function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
24function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
25
26function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
27
28/**
29 * Get the HTML element for the title, depending on the provided semantic
30 * level.
31 *
32 * @param {Integer} level
33 * @return {String}
34 */
35function getElement(level) {
36 switch (level) {
37 case 1:
38 return 'h1';
39 case 2:
40 return 'h2';
41 case 3:
42 return 'h3';
43 case 4:
44 return 'h4';
45 default:
46 return 'h1';
47 }
48}
49
50var Title = function Title(_ref) {
51 var level = _ref.level,
52 size = _ref.size,
53 other = _objectWithoutProperties(_ref, ['level', 'size']);
54
55 var Element = (0, _styledComponents2.default)(getElement(level))(_templateObject, function (props) {
56 return props.theme.font.header;
57 }, function () {
58 if (size === 1) return '1.5em';
59 if (size === 2) return '1.125em';
60 if (size === 3) return '1em';
61 return '1.5em';
62 }, _media2.default.medium(_templateObject2, function () {
63 if (size === 1) return '1.875em';
64 if (size === 2) return '1.5em';
65 if (size === 3) return '1.25em';
66 return '1.875em';
67 }), _media2.default.wide(_templateObject2, function () {
68 if (size === 1) return '2.5em';
69 if (size === 2) return '1.625em';
70 if (size === 3) return '1.25em';
71 return '2.5em';
72 }), _media2.default['extra-wide'](_templateObject2, function () {
73 if (size === 1) return '3.5em';
74 if (size === 2) return '2em';
75 if (size === 3) return '1.5em';
76 return '3.5em';
77 }));
78
79 return _react2.default.createElement(Element, other);
80};
81
82exports.default = Title;
\No newline at end of file