From 249f75d5da1dcfb4b55bd8eeebacec0e6154bbe9 Mon Sep 17 00:00:00 2001
From: Danilo Leal <67129314+danilo-leal@users.noreply.github.com>
Date: Tue, 7 May 2024 16:46:38 -0300
Subject: [PATCH] refine the inside-the-block copy button
---
packages/markdown/parseMarkdown.js | 6 +-
.../mui-docs/src/CodeCopy/CodeCopyButton.tsx | 10 +---
.../src/MarkdownElement/MarkdownElement.tsx | 56 ++++++++-----------
3 files changed, 28 insertions(+), 44 deletions(-)
diff --git a/packages/markdown/parseMarkdown.js b/packages/markdown/parseMarkdown.js
index 874f48b1241582..3516a7aa1262c2 100644
--- a/packages/markdown/parseMarkdown.js
+++ b/packages/markdown/parseMarkdown.js
@@ -423,10 +423,8 @@ function createRender(context) {
escaped ? code : escape(code, true)
}${[
'',
].join('')}\n`;
};
diff --git a/packages/mui-docs/src/CodeCopy/CodeCopyButton.tsx b/packages/mui-docs/src/CodeCopy/CodeCopyButton.tsx
index 648e479a504399..4b90ca5e71b1d3 100644
--- a/packages/mui-docs/src/CodeCopy/CodeCopyButton.tsx
+++ b/packages/mui-docs/src/CodeCopy/CodeCopyButton.tsx
@@ -1,6 +1,4 @@
import * as React from 'react';
-import ContentCopyRoundedIcon from '@mui/icons-material/ContentCopyRounded';
-import LibraryAddCheckRoundedIcon from '@mui/icons-material/LibraryAddCheckRounded';
import useClipboardCopy from './useClipboardCopy';
export interface CodeCopyButtonProps {
@@ -27,12 +25,8 @@ export function CodeCopyButton(props: CodeCopyButtonProps) {
}}
>
{/* material-ui/no-hardcoded-labels */}
- {isCopied ? (
-
- ) : (
-
- )}
-
+ {isCopied ? 'Copied' : 'Copy'}
+
(or {key}C)
diff --git a/packages/mui-docs/src/MarkdownElement/MarkdownElement.tsx b/packages/mui-docs/src/MarkdownElement/MarkdownElement.tsx
index b95280444c9c0a..3b1bcdbd0cea6f 100644
--- a/packages/mui-docs/src/MarkdownElement/MarkdownElement.tsx
+++ b/packages/mui-docs/src/MarkdownElement/MarkdownElement.tsx
@@ -532,44 +532,34 @@ const Root = styled('div')(
top: 0,
},
'& .MuiCode-copy': {
- display: 'inline-flex',
- flexDirection: 'row-reverse',
- alignItems: 'center',
- width: 26,
- height: 26,
cursor: 'pointer',
position: 'absolute',
top: 12,
right: 12,
+ display: 'inline-flex',
+ flexDirection: 'row-reverse',
+ alignItems: 'center',
+ height: 24,
padding: theme.spacing(0.5),
- fontFamily: 'inherit',
- fontWeight: 500,
+ paddingBottom: '5px', // optical alignment
+ fontFamily: lightTheme.typography.fontFamily,
+ fontWeight: lightTheme.typography.fontWeightMedium,
+ fontSize: lightTheme.typography.pxToRem(12),
borderRadius: 6,
- border: 'none',
- backgroundColor: 'hsl(210, 35%, 9%)', // using the code block one-off background color (defined in line 23)
- color: '#FFF',
+ border: '1px solid',
+ borderColor: alpha(lightTheme.palette.primaryDark[600], 0.5),
+ backgroundColor: alpha(lightTheme.palette.primaryDark[800], 0.5),
+ color: `var(--muidocs-palette-grey-200, ${lightTheme.palette.grey[200]})`,
transition: theme.transitions.create(['background', 'borderColor', 'display'], {
duration: theme.transitions.duration.shortest,
}),
- '& svg': {
- userSelect: 'none',
- width: theme.typography.pxToRem(16),
- height: theme.typography.pxToRem(16),
- display: 'inline-block',
- fill: 'currentcolor',
- flexShrink: 0,
- fontSize: '18px',
- margin: 'auto',
- opacity: 0.5,
- },
- '& .MuiCode-copied-icon': {
+ '& .MuiCode-copied-label': {
display: 'none',
},
'&:hover, &:focus': {
- backgroundColor: lightTheme.palette.primaryDark[600],
- '& svg': {
- opacity: 1,
- },
+ borderColor: `var(--muidocs-palette-primaryDark-400, ${lightTheme.palette.primaryDark[400]})`,
+ backgroundColor: `var(--muidocs-palette-primaryDark-700, ${lightTheme.palette.primaryDark[700]})`,
+ color: '#FFF',
'& .MuiCode-copyKeypress': {
display: 'block',
// Approximate no hover capabilities with no keyboard
@@ -582,17 +572,19 @@ const Root = styled('div')(
'& .MuiCode-copyKeypress': {
display: 'none',
position: 'absolute',
- right: 26,
+ right: 34,
},
'&[data-copied]': {
- // style of the button when it is in copied state.
- borderColor: lightTheme.palette.primary[700],
+ borderColor: `var(--muidocs-palette-primaryDark-400, ${lightTheme.palette.primaryDark[400]})`,
+ backgroundColor: `var(--muidocs-palette-primaryDark-700, ${lightTheme.palette.primaryDark[700]})`,
color: '#fff',
- backgroundColor: lightTheme.palette.primaryDark[600],
- '& .MuiCode-copy-icon': {
+ '& .MuiCode-copyKeypress': {
+ opacity: 0,
+ },
+ '& .MuiCode-copy-label': {
display: 'none',
},
- '& .MuiCode-copied-icon': {
+ '& .MuiCode-copied-label': {
display: 'block',
},
},