mirror of
https://github.com/element-hq/element-web
synced 2024-11-25 18:55:58 +03:00
add generic caption typography component (#9283)
This commit is contained in:
parent
10bb10539b
commit
8d9e5237fd
5 changed files with 118 additions and 0 deletions
|
@ -38,6 +38,7 @@
|
|||
@import "./components/views/settings/devices/_SelectableDeviceTile.pcss";
|
||||
@import "./components/views/settings/shared/_SettingsSubsection.pcss";
|
||||
@import "./components/views/spaces/_QuickThemeSwitcher.pcss";
|
||||
@import "./components/views/typography/_Caption.pcss";
|
||||
@import "./structures/_AutoHideScrollbar.pcss";
|
||||
@import "./structures/_BackdropPanel.pcss";
|
||||
@import "./structures/_CompatibilityPage.pcss";
|
||||
|
|
20
res/css/components/views/typography/_Caption.pcss
Normal file
20
res/css/components/views/typography/_Caption.pcss
Normal file
|
@ -0,0 +1,20 @@
|
|||
/*
|
||||
Copyright 2022 The Matrix.org Foundation C.I.C.
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
.mx_Caption {
|
||||
font-size: $font-12px;
|
||||
color: $secondary-content;
|
||||
}
|
27
src/components/views/typography/Caption.tsx
Normal file
27
src/components/views/typography/Caption.tsx
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
Copyright 2022 The Matrix.org Foundation C.I.C.
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
import React, { HTMLAttributes } from 'react';
|
||||
|
||||
interface Props extends Omit<HTMLAttributes<HTMLSpanElement>, 'className'> {
|
||||
children: React.ReactNode;
|
||||
}
|
||||
|
||||
export const Caption: React.FC<Props> = ({ children, ...rest }) => {
|
||||
return <span className='mx_Caption' {...rest}>
|
||||
{ children }
|
||||
</span>;
|
||||
};
|
40
test/components/views/typography/Caption-test.tsx
Normal file
40
test/components/views/typography/Caption-test.tsx
Normal file
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
Copyright 2022 The Matrix.org Foundation C.I.C.
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import { render } from '@testing-library/react';
|
||||
|
||||
import { Caption } from '../../../../src/components/views/typography/Caption';
|
||||
|
||||
describe('<Caption />', () => {
|
||||
const defaultProps = {
|
||||
'children': 'test',
|
||||
'data-testid': 'test test id',
|
||||
};
|
||||
const getComponent = (props = {}) =>
|
||||
(<Caption {...defaultProps} {...props} />);
|
||||
|
||||
it('renders plain text children', () => {
|
||||
const { container } = render(getComponent());
|
||||
expect({ container }).toMatchSnapshot();
|
||||
});
|
||||
|
||||
it('renders react children', () => {
|
||||
const children = <>Test <b>test but bold</b></>;
|
||||
const { container } = render(getComponent({ children }));
|
||||
expect({ container }).toMatchSnapshot();
|
||||
});
|
||||
});
|
|
@ -0,0 +1,30 @@
|
|||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||
|
||||
exports[`<Caption /> renders plain text children 1`] = `
|
||||
Object {
|
||||
"container": <div>
|
||||
<span
|
||||
class="mx_Caption"
|
||||
data-testid="test test id"
|
||||
>
|
||||
test
|
||||
</span>
|
||||
</div>,
|
||||
}
|
||||
`;
|
||||
|
||||
exports[`<Caption /> renders react children 1`] = `
|
||||
Object {
|
||||
"container": <div>
|
||||
<span
|
||||
class="mx_Caption"
|
||||
data-testid="test test id"
|
||||
>
|
||||
Test
|
||||
<b>
|
||||
test but bold
|
||||
</b>
|
||||
</span>
|
||||
</div>,
|
||||
}
|
||||
`;
|
Loading…
Reference in a new issue