Files
react-test/docs/data/joy/components/slider/EdgeLabelSlider.js
how2ice 005cf56baf
Some checks failed
No response / noResponse (push) Has been cancelled
CI / Continuous releases (push) Has been cancelled
CI / test-dev (macos-latest) (push) Has been cancelled
CI / test-dev (ubuntu-latest) (push) Has been cancelled
CI / test-dev (windows-latest) (push) Has been cancelled
Maintenance / main (push) Has been cancelled
Scorecards supply-chain security / Scorecards analysis (push) Has been cancelled
CodeQL / Analyze (push) Has been cancelled
init project
2025-12-12 14:26:25 +09:00

63 lines
1.7 KiB
JavaScript

import Box from '@mui/joy/Box';
import Slider, { sliderClasses } from '@mui/joy/Slider';
function valueText(value) {
return `${value}°C`;
}
export default function EdgeLabelSlider() {
return (
<Box sx={{ width: 300 }}>
<Slider
track={false}
defaultValue={[0, 100]}
getAriaLabel={() => 'Amount'}
getAriaValueText={valueText}
marks={[
{
value: 0,
label: '0°C',
},
{
value: 100,
label: '100°C',
},
]}
valueLabelDisplay="on"
sx={{
// Need both of the selectors to make it works on the server-side and client-side
[`& [style*="left:0%"], & [style*="left: 0%"]`]: {
[`&.${sliderClasses.markLabel}`]: {
transform: 'none',
},
[`& .${sliderClasses.valueLabel}`]: {
left: 'calc(var(--Slider-thumbSize) / 2)',
borderBottomLeftRadius: 0,
'&::before': {
left: 0,
transform: 'translateY(100%)',
borderLeftColor: 'currentColor',
},
},
},
[`& [style*="left:100%"], & [style*="left: 100%"]`]: {
[`&.${sliderClasses.markLabel}`]: {
transform: 'translateX(-100%)',
},
[`& .${sliderClasses.valueLabel}`]: {
right: 'calc(var(--Slider-thumbSize) / 2)',
borderBottomRightRadius: 0,
'&::before': {
left: 'initial',
right: 0,
transform: 'translateY(100%)',
borderRightColor: 'currentColor',
},
},
},
}}
/>
</Box>
);
}