Skip to content

Commit

Permalink
amp-fit-text:1.0 Vertical center non-overflowing text (#32558)
Browse files Browse the repository at this point in the history
* Use display: flex for non overflowing text elements.

* Wrap with Wrapper

* ContainWrapper should be top level
  • Loading branch information
caroqliu committed Feb 10, 2021
1 parent 0ab0609 commit 614dd77
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 11 deletions.
17 changes: 11 additions & 6 deletions extensions/amp-fit-text/1.0/component.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,14 +74,14 @@ export function FitText({
size={true}
layout={true}
paint={true}
ref={containerRef}
wrapperClassName={classes.fitTextContentWrapper}
contentRef={measurerRef}
contentClassName={classes.fitTextContent}
contentRef={containerRef}
contentClassName={classes.fitTextContentWrapper}
{...rest}
>
<div ref={heightRef} className={classes.minContentHeight}>
{children}
<div ref={measurerRef} className={classes.fitTextContent}>
<div ref={heightRef} className={classes.minContentHeight}>
{children}
</div>
</div>
</ContainWrapper>
);
Expand Down Expand Up @@ -134,7 +134,12 @@ function setOverflowStyle(measurer, maxHeight, fontSize) {
'-webkit-line-clamp': numberOfLines,
'maxHeight': px(lineHeight * numberOfLines),
});
// Cannot use setInitialDisplay which calls devAssert.
// eslint-disable-next-line local/no-style-display
resetStyles(measurer, ['display']);
} else {
// eslint-disable-next-line local/no-style-display
setStyle(measurer, 'display', 'flex');
resetStyles(measurer, ['lineClamp', '-webkit-line-clamp', 'maxHeight']);
}
}
4 changes: 4 additions & 0 deletions extensions/amp-fit-text/1.0/component.jss.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ const fitTextContent = {
'-webkit-box-orient': 'vertical',
'overflow': 'hidden',
'textOverflow': 'ellipsis',

'flexDirection': 'column',
'flexWrap': 'nowrap',
'justifyContent': 'center',
};

const minContentHeight = {
Expand Down
10 changes: 5 additions & 5 deletions extensions/amp-fit-text/1.0/storybook/Basic.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ export const _default = () => {
<FitText
minFontSize={minFontSize}
maxFontSize={maxFontSize}
style={{display: 'block', border: '1px solid black', width, height}}
style={{border: '1px solid black', width, height}}
>
Lorem <i>ips</i>um dolor sit amet, has nisl nihil convenire et, vim at
aeque inermis reprehendunt.
Expand All @@ -51,7 +51,7 @@ export const scaleUpOverflowEllipsis = () => {
<FitText
minFontSize={minFontSize}
maxFontSize={maxFontSize}
style={{display: 'block', border: '1px solid black', width, height}}
style={{border: '1px solid black', width, height}}
>
Lorem <i>ips</i>um dolor sit amet, has nisl nihil convenire et, vim at
aeque inermis reprehendunt.
Expand All @@ -68,7 +68,7 @@ export const scaleDown = () => {
<FitText
minFontSize={minFontSize}
maxFontSize={maxFontSize}
style={{display: 'block', border: '1px solid black', width, height}}
style={{border: '1px solid black', width, height}}
>
Lorem <i>ips</i>um dolor sit amet, has nisl nihil convenire et, vim at
aeque inermis reprehendunt. Propriae tincidunt id nec, elit nusquam te
Expand All @@ -89,7 +89,7 @@ export const scaleDownMore = () => {
<FitText
minFontSize={minFontSize}
maxFontSize={maxFontSize}
style={{display: 'block', border: '1px solid black', width, height}}
style={{border: '1px solid black', width, height}}
>
Superlongword text
</FitText>
Expand All @@ -106,7 +106,7 @@ export const configureContent = () => {
<FitText
minFontSize={minFontSize}
maxFontSize={maxFontSize}
style={{display: 'block', border: '1px solid black', width, height}}
style={{border: '1px solid black', width, height}}
>
{content}
</FitText>
Expand Down

0 comments on commit 614dd77

Please sign in to comment.