๐Ÿ“ฆ dimitropoulos / mui-breakpoint-indicator

shows you your current material-ui breakpoint. tiny. allows default position setting.

โ˜… 10 stars โ‘‚ 2 forks ๐Ÿ‘ 10 watching
material-uiresponsiveresponsive-designresponsive-web-designtypescript
๐Ÿ“ฅ Clone https://github.com/dimitropoulos/mui-breakpoint-indicator.git
HTTPS git clone https://github.com/dimitropoulos/mui-breakpoint-indicator.git
SSH git clone git@github.com:dimitropoulos/mui-breakpoint-indicator.git
CLI gh repo clone dimitropoulos/mui-breakpoint-indicator
Dimitri Mitropoulos Dimitri Mitropoulos Merge pull request #1 from Ziriax/patch-1 62ad83b 3 years ago ๐Ÿ“ History
๐Ÿ“‚ master View all commits โ†’
๐Ÿ“ lib
๐Ÿ“ media
๐Ÿ“„ .gitignore
๐Ÿ“„ index.d.ts
๐Ÿ“„ index.js
๐Ÿ“„ index.ts
๐Ÿ“„ package.json
๐Ÿ“„ README.md
๐Ÿ“„ tsconfig.json
๐Ÿ“„ yarn.lock
๐Ÿ“„ README.md

MUI Breakpoint Indicator

When developing responsive applications with mui, it's often helpful to be able to easily visualize the current breakpoint. Enter, <BreakpointIndicator />.

How does it work?

You can simply import the component at the top level of your app, just after mui's ThemeProvider (shown below with redux as well):

import { render } from 'react-dom';
import { ThemeProvider, CssBaseline } from '@mui/material';

import { theme } from './path/to/my/theme';
import { MyApp } from './path/to/MyApp';
import { BreakpointIndicator } from 'mui-breakpoint-indicator';

const store = configureStore();

const root = (
  <ThemeProvider theme={theme}>
    <CSSBaseline />
    <BreakpointIndicator />
    <MyApp />
  </ThemeProvider>
);

ReactDOM.render(root, document.querySelector('#root'));

How can it be configured?

the position prop [string, defaults to top-center]

The BreakpointIndicator has an optional position prop with the following type:

type Position =
  | 'bottom-center'
  | 'bottom-left'
  | 'bottom-right'
  | 'left-center'
  | 'right-center'
  | 'top-center'
  | 'top-left'
  | 'top-right'
  ;

The default is top-center, but you can configure the default to whatever position you prefer, e.g.:

<BreakpointIndicator position="bottom-right" />

the visible prop [boolean, defaults to true]

A common use case is to use a tool like this conditionally, e.g.:

const debugMode = useSelector(selectDebugMode);

return (
  <div>
    {debugMode && <BreakpointIndicator />}
    <MyApp />
  <div>
)

While you can still do the above, BreakpointIndicator accepts a visible prop (defaults to true) where you can pass a debugMode flag, as above:

const debugMode = useSelector(selectDebugMode);

return (
  <div>
    <BreakpointIndicator visible={debugMode} />
    <MyApp />
  <div>
)

The implementation of the visible prop is such that passing visible={false} is a no-op.

How can it be interacted with?

Resize the Viewport

Simply resize the viewport, and watch the indicator change:

resize

Click to Rotate

Clockwise

You can click on the indicator to temporarily rotate it to the next position, clockwise. clockwise

Counter-Clockwise

You can ctrl+click the indicator to rotate it counter-clockwise. counterclockwise

NOTE: When you refresh or rerender your app it will revert to whatever the position prop is set to (or the default, top-center if none is set), so be sure to just set the position prop if you want it to always be in a particular area of the screen.

Can I use this if I'm not using MUI?

No. At this time, this component is directly tied to some mui underpinnings.