diff --git a/package.json b/package.json index b92007c..36bb777 100644 --- a/package.json +++ b/package.json @@ -31,12 +31,13 @@ }, "dependencies": { "@coreui/chartjs": "^3.0.0", - + "@coreui/coreui": "^4.1.0", "@coreui/icons": "^2.1.0", "@coreui/icons-react": "^2.0.0", "@coreui/react": "^4.1.0", "@coreui/react-chartjs": "^2.0.0", "@coreui/utils": "^1.3.1", + "@reduxjs/toolkit": "^1.8.2", "@wojtekmaj/enzyme-adapter-react-17": "^0.6.5", "axios": "^0.25.0", "bootstrap": "^5.1.3", diff --git a/public/index.html b/public/index.html index 6ca9446..055bcce 100644 --- a/public/index.html +++ b/public/index.html @@ -15,7 +15,7 @@ -
Name | +Image | +Added On | +Actions | +
---|---|---|---|
{item?.name} | +
+ |
+ + {/* {item?.addedOn} */} + {new Date(`${item?.addedOn}`).toDateString()} , {`${formatAMPM(item?.addedOn)}`} + + | + + ++ + + + + + | +
Name | -Price | -Status | -Actions | -
---|---|---|---|
{title} | -{price} | -- - {status ? "Live" : "Suspended"} - - | -- - - - - - - - | -
Fill the fields and submit to add a new vendor
-(auto-generated)
*/} -(auto-generated)
*/} -Fill the fields and submit to add a new vendor
-(auto-generated)
*/} -(auto-generated)
*/} -Name | +Category | +City | +Status | +Actions | +
---|---|---|---|---|
{item?.name} | +{item?.category} | +{item?.city} | ++ + {status ? "Live" : "Suspended"} + + | ++ + + + + + + + + + + + | +
Name | +Category | +phone | +Building_Name | +Street_Name | +city | +description | +Status | +Google Location | +LinkedinUrl | +FacebookUrl | +intagramUrl | + +||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
{bisuness?.name} | +{bisuness?.category} | +{bisuness?.email} | +{bisuness?.phone} | +{bisuness?.Building_Name} | +{bisuness?.Street_Name} | +{bisuness?.city} | +{bisuness?.description} | + ++ + {bisuness?.status ? "Live" : "Suspended"} + + | +{bisuness?.Glocation} | +{bisuness?.LinkedinUrl} | +{bisuness?.FacebookUrl} | +{bisuness?.InstagramUrl} | ++ + | +
Title | +Image | +Added On | +Action | +
---|---|---|---|
{item?.title} | +
+ |
+ + {/* {item?.addedOn} */} + {new Date(`${item?.addedOn}`).toDateString()} , {`${formatAMPM(item?.addedOn)}`} + + | + + ++ + + + + + + + + + | +
Id | +Title | + +Image | +Description | +Added On | +Updated At | +
---|---|---|---|---|---|
{news?._id} | +{news?.title} | +
+ |
+
+ {news?.description} | ++ {new Date(`${news?.addedOn}`).toDateString()} , {`${formatAMPM(news?.addedOn)}`} + | ++ {new Date(`${news?.updatedAt}`).toDateString()} , {`${formatAMPM(news?.updatedAt)}`} + | + + +
Fill the fields and submit to add a new vendor
-(auto-generated)
*/} -Fill the fields and submit to add a new vendor
*/} -(auto-generated)
*/} -- Click the accordions below to expand/collapse the accordion content. -
-.accordion-body
, though the
- transition does limit overflow.
- .accordion-body
, though the
- transition does limit overflow.
- .accordion-body
, though the
- transition does limit overflow.
-
- Add flush
to remove the default background-color
, some
- borders, and some rounded corners to render accordions edge-to-edge with their parent
- container.
-
.accordion-body
, though the
- transition does limit overflow.
- .accordion-body
, though the
- transition does limit overflow.
- .accordion-body
, though the
- transition does limit overflow.
-
- Add alwaysOpen
property to make accordion items stay open when another
- item is opened.
-
.accordion-body
, though the
- transition does limit overflow.
- .accordion-body
, though the
- transition does limit overflow.
- .accordion-body
, though the
- transition does limit overflow.
-
- The breadcrumb navigation provides links back to each previous page the user navigated
- through and shows the current location in a website or an application. You don’t have
- to add separators, because they automatically added in CSS through{' '}
-
- {' '}
- ::before
- {' '}
- and{' '}
-
- {' '}
- content
-
- .
-
- Cards are built with as little markup and styles as possible but still manage to - deliver a bunch of control and customization. Built with flexbox, they offer easy - alignment and mix well with other CoreUI components. Cards have no top, left, and - right margins by default, so use{' '} - spacing utilities as needed. - They have no fixed width to start, so they'll fill the full width of its parent. -
-- Below is an example of a basic card with mixed content and a fixed width. Cards have - no fixed width to start, so they'll naturally fill the full width of its parent - element. -
-
- The main block of a card is the <CCardBody>
. Use it whenever you
- need a padded section within a card.
-
- Card titles are managed by <CCardTitle>
component. Identically,
- links are attached and collected next to each other by <CCardLink>
{' '}
- component.
-
- Subtitles are managed by <CCardSubtitle>
component. If the{' '}
- <CCardTitle>
also, the <CCardSubtitle>
items are
- stored in a <CCardBody>
item, the card title, and subtitle are
- arranged rightly.
-
- .card-img-top
places a picture to the top of the card. With{' '}
- .card-text
, text can be added to the card. Text within{' '}
- .card-text
can additionally be styled with the regular HTML tags.
-
- Create lists of content in a card with a flush list group. -
-- Combine and match many content types to build the card you need, or throw everything - in there. Shown below are image styles, blocks, text styles, and a list group—all - wrapped in a fixed-width card. -
-- Add an optional header and/or footer within a card. -
-
- Card headers can be styled by adding ex. component="h5"
.
-
--- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat - a ante. -
- -
- Cards assume no specific width
to start, so they'll be 100% wide
- unless otherwise stated. You can adjust this as required with custom CSS, grid
- classes, grid Sass mixins, or services.
-
- Using the grid, wrap cards in columns and rows as needed. -
-- Use some of{' '} - available sizing utilities to - rapidly set a card's width. -
-- Use custom CSS in your stylesheets or as inline styles to set a width. -
-- You can instantly change the text arrangement of any card—in its whole or specific - parts—with{' '} - text align classes - . -
-
- Add some navigation to a <CCardHeader>
with our{' '}
- <CNav>
component.
-
- Similar to headers and footers, cards can include top and bottom "image - caps"—images at the top or bottom of a card. -
-- Cards include various options for customizing their backgrounds, borders, and color. -
-
- Use color
property to change the appearance of a card.
-
- Use border utilities to change
- just the border-color
of a card. Note that you can set{' '}
- textColor
property on the <CCard>
or a subset of the
- card's contents as shown below.
-
- Use border utilities to change
- just the border-color
of a card. Note that you can set{' '}
- textColor
property on the <CCard>
or a subset of the
- card's contents as shown below.
-
- Use card groups to render cards as a single, attached element with equal width and
- height columns. Card groups start off stacked and use display: flex;
to
- become attached with uniform dimensions starting at the sm
breakpoint.
-
- When using card groups with footers, their content will automatically line up. -
-
- Use the CRow
component and set{' '}
- {xs|sm|md|lg|xl|xxl}={{ cols: * }}
property
- to control how many grid columns (wrapped around your cards) you show per row. For
- example, here's xs={{cols: 1}}
laying out the
- cards on one column, and md={{cols: 1}}
splitting
- four cards to equal width across multiple rows, from the medium breakpoint up.
-
- Change it to md={{ cols: 3}}
and you'll see the
- fourth card wrap.
-
Here’s a carousel with slides
-
- Adding in the previous and next controls by controls
property.
-
- You can attach the indicators to the carousel, lengthwise the controls, too. -
-
- You can add captions to slides with the <CCarouselCaption>
element
- within any <CCarouselItem>
. They can be immediately hidden on
- smaller viewports, as shown below, with optional{' '}
- display utilities. We hide them
- with .d-none
and draw them back on medium-sized devices with{' '}
- .d-md-block
.
-
Some representative placeholder content for the first slide.
-Some representative placeholder content for the first slide.
-Some representative placeholder content for the first slide.
-
- Add transition="crossfade"
to your carousel to animate slides
- with a fade transition instead of a slide.
-
- Add dark
property to the CCarousel
for darker controls,
- indicators, and captions. Controls have been inverted from their default white fill
- with the filter
CSS property. Captions and controls have additional Sass
- variables that customize the color
and background-color
.
-
Some representative placeholder content for the first slide.
-Some representative placeholder content for the first slide.
-Some representative placeholder content for the first slide.
-You can use a link or a button component.
-You can use a link or a button component.
-
- A <CButton>
can show and hide multiple elements.
-
- Using a series of utilities, you can create this jumbotron, just like the one in - previous versions of Bootstrap. Check out the examples below for how you can remix and - restyle it to your liking. -
-- Swap the background-color utility and add a `.text-*` color utility to mix up the - jumbotron look. Then, mix and match with additional component themes and more. -
-- Or, keep it light and add a border for some added definition to the boundaries of - your content. Be sure to look under the hood at the source HTML here as we've - adjusted the alignment and sizing of both column's content for equal-height. -
-- The default list group is an unordered list with items and the proper CSS classes. - Build upon it with the options that follow, or with your CSS as required. -
-
- Add active
boolean property to a <CListGroupItem>
to
- show the current active selection.
-
- Add disabled
boolean property to a <CListGroupItem>
to
- make it appear disabled.
-
- Use <a>
s or <button>
s to create{' '}
- actionable list group items with hover, disabled, and active states by adding{' '}
- component="a|button"
. We separate these pseudo-classes to ensure
- list groups made of non-interactive elements (like <li>
s or{' '}
- <div>
- s) don'tprovide a click or tap affordance.
-
- Add flush
boolean property to remove some borders and rounded corners to
- render list group items edge-to-edge in a parent container (e.g., cards).
-
- Add layout="horizontal"
to change the layout of list group items
- from vertical to horizontal across all breakpoints. Alternatively, choose a responsive
- variant .layout="horizontal-{sm | md | lg | xl | xxl}"
{' '}
- to make a list group horizontal starting at that breakpoint's{' '}
- min-width
. Currently{' '}
- horizontal list groups cannot be combined with flush list groups.
-
- Use contextual classes to style list items with a stateful background and color. -
-
- Contextual classes also work with <a>
s or{' '}
- <button>
s. Note the addition of the hover styles here not present
- in the previous example. Also supported is the active
state; apply it to
- indicate an active selection on a contextual list group item.
-
- Add badges to any list group item to show unread counts, activity, and more. -
-- Add nearly any HTML within, even for linked list groups like the one below, with the - help of flexbox utilities. -
-- Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus - varius blandit. -
- Donec id elit non mi porta. -- Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus - varius blandit. -
- Donec id elit non mi porta. -- Donec id elit non mi porta gravida at eget metus. Maecenas sed diam eget risus - varius blandit. -
- Donec id elit non mi porta. -- Place CoreUI's checkboxes and radios within list group items and customize as - needed. -
-
- The base .nav
component is built with flexbox and provide a strong
- foundation for building all types of navigation components. It includes some style
- overrides (for working with lists), some link padding for larger hit areas, and basic
- disabled styling.
-
- Classes are used throughout, so your markup can be super flexible. Use{' '}
- <ul>
s like above, <ol>
if the order of your
- items is important, or roll your own with a <nav>
element. Because
- the .nav uses display: flex, the nav links behave the same as nav items would, but
- without the extra markup.
-
- Change the horizontal alignment of your nav with{' '} - - flexbox utilities - - . By default, navs are left-aligned, but you can easily change them to center or right - aligned. -
-
- Centered with .justify-content-center
:
-
- Right-aligned with .justify-content-end
:
-
- Stack your navigation by changing the flex item direction with the{' '}
- .flex-column
utility. Need to stack them on some viewports but not
- others? Use the responsive versions (e.g., .flex-sm-column
).
-
- Takes the basic nav from above and adds the variant="tabs"
class
- to generate a tabbed interface
-
- Take that same HTML, but use variant="pills"
instead:
-
- Force your .nav
's contents to extend the full available width one of
- two modifier classes. To proportionately fill all available space with your{' '}
- .nav-item
s, use layout="fill"
. Notice that all
- horizontal space is occupied, but not every nav item has the same width.
-
- For equal-width elements, use layout="justified"
. All horizontal
- space will be occupied by nav links, but unlike the .nav-fill above, every nav item
- will be the same width.
-
- If you need responsive nav variations, consider using a series of{' '} - flexbox utilities. While more - verbose, these utilities offer greater customization across responsive breakpoints. In - the example below, our nav will be stacked on the lowest breakpoint, then adapt to a - horizontal layout that fills the available width starting from the small breakpoint. -
-
- We use a large block of connected links for our pagination, making links hard to miss
- and easily scalable—all while providing large hit areas. Pagination is built with list
- HTML elements so screen readers can announce the number of available links. Use a
- wrapping <nav>
element to identify it as a navigation section to
- screen readers and other assistive technologies.
-
- In addition, as pages likely have more than one such navigation section, it's
- advisable to provide a descriptive aria-label
for the{' '}
- <nav>
to reflect its purpose. For example, if the pagination
- component is used to navigate between a set of search results, an appropriate label
- could be aria-label="Search results pages"
.
-
- Looking to use an icon or symbol in place of text for some pagination links? Be sure
- to provide proper screen reader support with aria
attributes.
-
- Pagination links are customizable for different circumstances. Use{' '}
- disabled
for links that appear un-clickable and .active
to
- indicate the current page.
-
- While the disabled
prop uses pointer-events: none
to{' '}
- try to disable the link functionality of <a>
s, that CSS
- property is not yet standardized and doesn'taccount for keyboard navigation. As
- such, we always add tabindex="-1"
on disabled links and use
- custom JavaScript to fully disable their functionality.
-
- Fancy larger or smaller pagination? Add size="lg"
or{' '}
- size="sm"
for additional sizes.
-
- Change the alignment of pagination components with{' '} - flexbox utilities. -
-- In the example below, we take a typical card component and recreate it with - placeholders applied to create a "loading card". Size and proportions are the - same between the two. -
-
- Create placeholders with the <CPlaceholder>
component and a grid
- column propx (e.g., xs={6}
) to set the width
. They can
- replace the text inside an element or be added as a modifier class to an existing
- component.
-
- You can change the width
through grid column classes, width utilities, or
- inline styles.
-
- By default, the <CPlaceholder>
uses currentColor
. This
- can be overridden with a custom color or utility class.
-
- The size of <CPlaceholder>
s are based on the typographic style of
- the parent element. Customize them with size
prop: lg
,{' '}
- sm
, or xs
.
-
- Animate placeholders with animation="glow"
or{' '}
- animation="wave"
to better convey the perception of something
- being actively loaded.
-
- Four options are available: top, right, bottom, and left aligned. Directions are - mirrored when using CoreUI for React in RTL. -
-
- Progress components are built with two HTML elements, some CSS to set the width, and a
- few attributes. We don'tuse{' '}
-
- the HTML5 <progress>
element
-
- , ensuring you can stack progress bars, animate them, and place text labels over them.
-
- Add labels to your progress bars by placing text within the{' '}
- <CProgressBar>
.
-
- We only set a height
value on the <CProgress>
, so if
- you change that value the inner <CProgressBar>
will automatically
- resize accordingly.
-
- Use color
prop to change the appearance of individual progress bars.
-
- Include multiple progress bars in a progress component if you need. -
-
- Add variant="striped"
to any <CProgressBar>
to
- apply a stripe via CSS gradient over the progress bar's background color.
-
- The striped gradient can also be animated. Add animated
property to{' '}
- <CProgressBar>
to animate the stripes right to left via CSS3
- animations.
-
- Use the border spinners for a lightweight loading indicator. -
-
- The border spinner uses currentColor
for its border-color
.
- You can use any of our text color utilities on the standard spinner.
-
- If you don'tfancy a border spinner, switch to the grow spinner. While it - doesn't technically spin, it does repeatedly grow! -
-
- Once again, this spinner is built with currentColor
, so you can easily
- change its appearance. Here it is in blue, along with the supported variants.
-
- Add size="sm"
property to make a smaller spinner that can quickly
- be used within other components.
-
- Use spinners within buttons to indicate an action is currently processing or taking - place. You may also swap the text out of the spinner element and utilize button text - as needed. -
-
- Using the most basic table CoreUI, here's how <CTable>
-based
- tables look in CoreUI.
-
- Use contextual classes to color tables, table rows or individual cells. -
-
- Use striped
property to add zebra-striping to any table row within the{' '}
- <CTableBody>
.
-
- These classes can also be added to table variants: -
-
- Use hover
property to enable a hover state on table rows within a{' '}
- <CTableBody>
.
-
- Add bordered
property for borders on all sides of the table and cells.
-
- - Border color utilities - {' '} - can be added to change colors: -
-
- Add borderless
property for a table without borders.
-
- Add small
property to make any <CTable>
more compact
- by cutting all cell padding
in half.
-
- Table cells of <CTableHead>
are always vertical aligned to the
- bottom. Table cells in <CTableBody>
inherit their alignment from{' '}
- <CTable>
and are aligned to the the top by default. Use the align
- property to re-align where needed.
-
vertical-align: middle;
from the table
- vertical-align: middle;
from the table
- vertical-align: middle;
from the table
- vertical-align: bottom;
from the table row
- vertical-align: bottom;
from the table row
- vertical-align: bottom;
from the table row
- vertical-align: middle;
from the table
- vertical-align: middle;
from the table
- - Border styles, active styles, and table variants are not inherited by nested tables. -
-
- Similar to tables and dark tables, use the modifier prop{' '}
- color="light"
or color="dark"
to make{' '}
- <CTableHead>
s appear light or dark gray.
-
- A <CTableCaption>
functions like a heading for a table. It helps
- users with screen readers to find a table and understand what it's about and
- decide if they want to read it.
-
- You can also put the <CTableCaption>
on the top of the table with{' '}
- caption="top"
.
-
- Hover over the links below to see tooltips: -
-
- Tight pants next level keffiyeh
-
- Hover over the buttons below to see the four tooltips directions: top, right, bottom, - and left. Directions are mirrored when using CoreUI in RTL. -
-
- Wrap a series of <CButton>
components in{' '}
- <CButtonGroup>
.{' '}
-
- These classes can also be added to groups of links, as an alternative to the{' '}
- <CNav>
components.
-
- Combine button-like checkbox and radio toggle buttons into a seamless looking button - group. -
-- Join sets of button groups into button toolbars for more complicated components. Use - utility classes as needed to space out groups, buttons, and more. -
-- Feel free to combine input groups with button groups in your toolbars. Similar to the - example above, you’ll likely need some utilities through to space items correctly. -
-
- Alternatively, of implementing button sizing classes to each button in a group, set{' '}
- size
property to all <CButtonGroup>
's, including
- each one when nesting multiple groups.
-
- Put a <CButtonGroup>
inside another{' '}
- <CButtonGroup>
when you need dropdown menus combined with a series
- of buttons.
-
- Create a set of buttons that appear vertically stacked rather than horizontally.{' '} - Split button dropdowns are not supported here. -
-- CoreUI includes a bunch of predefined buttons components, each serving its own - semantic purpose. Buttons show what action will happen when the user clicks or touches - it. CoreUI buttons are used to initialize operations, both in the background or - foreground of an experience. -
-- You can combine button with our CoreUI Icons. -
-
- The <CButton>
component are designed for{' '}
- <button>
, <a>
or <input>
{' '}
- elements (though some browsers may apply a slightly different rendering).
-
- If you're using <CButton>
component as <a>
{' '}
- elements that are used to trigger functionality ex. collapsing content, these links
- should be given a role="button"
to adequately communicate their
- meaning to assistive technologies such as screen readers.
-
- If you need a button, but without the strong background colors. Set{' '}
- variant="outline"
prop to remove all background colors.
-
- If you need a ghost variant of button, set variant="ghost"
prop
- to remove all background colors.
-
- Larger or smaller buttons? Add size="lg"
or{' '}
- size="sm"
for additional sizes.
-
- Add the disabled
boolean prop to any <CButton>
{' '}
- component to make buttons look inactive. Disabled button has{' '}
- pointer-events: none
applied to, disabling hover and active states from
- triggering.
-
- Disabled buttons using the <a>
component act a little different:
-
- <a>
s don'tsupport the disabled
attribute, so
- CoreUI has to add .disabled
className to make buttons look inactive.
- CoreUI also has to add to the disabled button component{' '}
- aria-disabled="true"
attribute to show the state of the component
- to assistive technologies.
-
- Create buttons that span the full width of a parent—by using utilities. -
-
- Here we create a responsive variation, starting with vertically stacked buttons until
- the md
breakpoint, where .d-md-block
replaces the{' '}
- .d-grid
class, thus nullifying the gap-2
utility. Resize
- your browser to see them change.
-
- You can adjust the width of your block buttons with grid column width classes. For
- example, for a half-width "block button", use .col-6
. Center it
- horizontally with .mx-auto
, too.
-
- Additional utilities can be used to adjust the alignment of buttons when horizontal. - Here we've taken our previous responsive example and added some flex utilities and - a margin utility on the button to right align the buttons when they're no longer - stacked. -
-
- Here's how you can put them to work with either <button>
{' '}
- elements:
-
- The best part is you can do this with any button variant, too: -
-
- Similarly, create split button dropdowns with virtually the same markup as single
- button dropdowns, but with the addition of boolean prop split
for proper
- spacing around the dropdown caret.
-
- We use this extra class to reduce the horizontal padding
on either side
- of the caret by 25% and remove the margin-left
that's attached for
- normal button dropdowns. Those additional changes hold the caret centered in the split
- button and implement a more properly sized hit area next to the main button.
-
- Button dropdowns work with buttons of all sizes, including default and split dropdown - buttons. -
-
- Opt into darker dropdowns to match a dark navbar or custom style by set{' '}
- dark
property. No changes are required to the dropdown items.
-
And putting it to use in a navbar:
-
- Trigger dropdown menus above elements by adding{' '}
- direction="dropup"
to the <CDropdown>
{' '}
- component.
-
- Trigger dropdown menus at the right of the elements by adding{' '}
- direction="dropend"
to the <CDropdown>
{' '}
- component.
-
- Trigger dropdown menus at the left of the elements by adding{' '}
- direction="dropstart"
to the <CDropdown>
{' '}
- component.
-
- Add the disabled
attribute and the associated <label>
s
- are automatically styled to match with a lighter color to help indicate the
- input's state.
-
- Add the disabled
attribute and the associated <label>
s
- are automatically styled to match with a lighter color to help indicate the
- input's state.
-
- A switch has the markup of a custom checkbox but uses the switch
boolean
- properly to render a toggle switch. Switches also support the disabled
{' '}
- attribute.
-
- By default, any number of checkboxes and radios that are immediate sibling will be - vertically stacked and appropriately spaced. -
-
- Group checkboxes or radios on the same horizontal row by adding inline
{' '}
- boolean property to any <CFormCheck>
.
-
- Remember to still provide some form of accessible name for assistive technologies (for
- instance, using aria-label
).
-
- Create button-like checkboxes and radio buttons by using button
boolean
- property on the <CFormCheck>
component. These toggle buttons can
- further be grouped in a button group if needed.
-
- Different variants of button, such at the various outlined styles, are supported. -
-
- Wrap a pair of <CFormInput>
and <CFormLabel>
{' '}
- elements in CFormFloating
to enable floating labels with textual form
- fields. A placeholder
is required on each <CFormInput>
{' '}
- as our method of CSS-only floating labels uses the :placeholder-shown
{' '}
- pseudo-element. Also note that the <CFormInput>
must come first so
- we can utilize a sibling selector (e.g., ~
).
-
- When there's a value
already defined, <CFormLabel>
- s will automatically adjust to their floated position.
-
- By default, <CFormTextarea>
s will be the same height as{' '}
- <CFormInput>
s.
-
- To set a custom height on your <CFormTextarea;>
, do not use the{' '}
- rows
attribute. Instead, set an explicit height
(either
- inline or via custom CSS).
-
- Other than <CFormInput>
, floating labels are only available on{' '}
- <CFormSelect>
s. They work in the same way, but unlike{' '}
- <CFormInput>
s, they'll always show the{' '}
- <CFormLabel>
in its floated state.{' '}
-
- Selects with size
and multiple
are not supported.
-
-
- When working with the CoreUI for Bootstrap grid system, be sure to place form elements - within column classes. -
-
- Set heights using size
property like size="lg"
and{' '}
- size="sm"
.
-
- Add the disabled
boolean attribute on an input to give it a grayed out
- appearance and remove pointer events.
-
- Add the readOnly
boolean attribute on an input to prevent modification of
- the input's value. Read-only inputs appear lighter (just like disabled inputs),
- but retain the standard cursor.
-
- If you want to have <input readonly>
elements in your form styled
- as plain text, use the plainText
boolean property to remove the default
- form field styling and preserve the correct margin and padding.
-
- Place one add-on or button on either side of an input. You may also place one on both
- sides of an input. Remember to place <CFormLabel>
s outside the
- input group.
-
- Input groups wrap by default via flex-wrap: wrap
in order to accommodate
- custom form field validation within an input group. You may disable this with{' '}
- .flex-nowrap
.
-
- Add the relative form sizing classes to the <CInputGroup>
itself
- and contents within will automatically resize—no need for repeating the form control
- size classes on each element.
-
- Sizing on the individual input group elements isn'tsupported. -
-- Place any checkbox or radio option within an input group's addon instead of text. -
-
- While multiple <CFormInput>
s are supported visually, validation
- styles are only available for input groups with a single{' '}
- <CFormInput>
.
-
- Multiple add-ons are supported and can be mixed with checkbox and radio input - versions.. -
-- Multiple add-ons are supported and can be mixed with checkbox and radio input - versions.. -
-- More complex forms can be built using our grid classes. Use these for form layouts - that require multiple columns, varied widths, and additional alignment options. -
-- By adding gutter modifier classes - , you can have control over the gutter width in as well the inline as block direction. -
-- More complex layouts can also be created with the grid system. -
-
- Create horizontal forms with the grid by adding the .row
class to form
- groups and using the .col-*-*
classes to specify the width of your labels
- and controls. Be sure to add .col-form-label
to your{' '}
- <CFormLabel>
s as well so they're vertically centered with their
- associated form controls.
-
- At times, you maybe need to use margin or padding utilities to create that perfect
- alignment you need. For example, we've removed the padding-top
on our
- stacked radio inputs label to better align the text baseline.
-
- Be sure to use .col-form-label-sm
or .col-form-label-lg
to
- your <CFormLabel>
s or <legend>
s to correctly
- follow the size of .form-control-lg
and .form-control-sm
.
-
- As shown in the previous examples, our grid system allows you to place any number of{' '}
- <CCol>
s within a <CRow>
. They'll split the
- available width equally between them. You may also pick a subset of your columns to
- take up more or less space, while the remaining <CCol>
s equally
- split the rest, with specific column classes like{' '}
- <CCol sm="7">
.
-
- The example below uses a flexbox utility to vertically center the contents and changes{' '}
- <CCol>
to <CCol xs="auto">
so that your
- columns only take up as much space as needed. Put another way, the column sizes itself
- based on the contents.
-
- You can then remix that once again with size-specific column classes. -
-
- Use the <CCol xs="auto">
class to create horizontal
- layouts. By adding{' '}
- gutter modifier classes, we will
- have gutters in horizontal and vertical directions. The{' '}
- .align-items-center
aligns the form elements to the middle, making the{' '}
- <CFormCheck>
align properly.
-
- Create custom <input type="range">
controls with{' '}
- <CFormRange>
.
-
- Add the disabled
boolean attribute on an input to give it a grayed out
- appearance and remove pointer events.
-
- Range inputs have implicit values for min
and max
—
- 0
and 100
, respectively. You may specify new values for
- those using the min
and max
attributes.
-
- By default, range inputs "snap" to integer values. To change this, you can
- specify a step
value. In the example below, we double the number of steps
- by using step="0.5"
.
-
- You may also choose from small and large custom selects to match our similarly sized - text inputs. -
-
- The multiple
attribute is also supported:
-
- As is the htmlSize
property:
-
- Add the disabled
boolean attribute on a select to give it a grayed out
- appearance and remove pointer events.
-
- For custom CoreUI form validation messages, you'll need to add the{' '}
- noValidate
boolean property to your <CForm>
. This
- disables the browser default feedback tooltips, but still provides access to the form
- validation APIs in JavaScript. Try to submit the form below; our JavaScript will
- intercept the submit button and relay feedback to you. When attempting to submit,
- you'll see the :invalid
and :valid
styles applied to
- your form controls.
-
- Custom feedback styles apply custom colors, borders, focus styles, and background - icons to better communicate feedback.{' '} -
-- Not interested in custom validation feedback messages or writing JavaScript to change - form behaviors? All good, you can use the browser defaults. Try submitting the form - below. Depending on your browser and OS, you'll see a slightly different style of - feedback. -
-- While these feedback styles cannot be styled with CSS, you can still customize the - feedback text through JavaScript. -
-
- We recommend using client-side validation, but in case you require server-side
- validation, you can indicate invalid and valid form fields with invalid
{' '}
- and valid
boolean properties.
-
- For invalid fields, ensure that the invalid feedback/error message is associated with
- the relevant form field using aria-describedby
(noting that this
- attribute allows more than one id
to be referenced, in case the field
- already points to additional form text).
-
- Validation styles are available for the following form controls and components: -
-<CFormInput>
s
- <CFormSelect>
s
- <CFormCheck>
s
-
- If your form layout allows it, you can swap the text for the tooltip to display
- validation feedback in a styled tooltip. Be sure to have a parent with{' '}
- position: relative
on it for tooltip positioning. In the example below,
- our column classes have this already, but your project may require an alternative
- setup.
-
- React Alert is prepared for any length of text, as well as an optional close button.
- For a styling, use one of the required contextual color
{' '}
- props (e.g., primary
). For inline dismissal, use the{' '}
-
- dismissing prop
-
- .
-
- Use the <CAlertLink>
component to immediately give matching colored
- links inside any alert.
-
- Alert can also incorporate supplementary components & elements like heading, - paragraph, and divider. -
-- Aww yeah, you successfully read this important alert message. This example text is - going to run a bit longer so that you can see how spacing within an alert works - with this kind of content. -
-- Whenever you need to, be sure to use margin utilities to keep things nice and - tidy. -
-
- Alerts can also be easily dismissed. Just add the dismissible
prop.
-
- Bootstrap badge scale to suit the size of the parent element by using relative font
- sizing and em
units.
-
- Badges can be used as part of links or buttons to provide a counter. -
-- Remark that depending on how you use them, badges may be complicated for users of - screen readers and related assistive technologies. -
-- Unless the context is clear, consider including additional context with a visually - hidden piece of additional text. -
-
- Add any of the below-mentioned color
props to modify the presentation of
- a badge.
-
- Apply the shape="rounded-pill"
prop to make badges rounded.
-
- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-- Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna, vel - scelerisque nisl consectetur et. Donec sed odio dui. Donec ullamcorper nulla non metus - auctor fringilla. -
-- Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis - in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. -
-- Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Vivamus sagittis - lacus vel augue laoreet rutrum faucibus dolor auctor. -
-
- This
-
-
- Below is a static modal example (meaning its position
and{' '}
- display
have been overridden). Included are the modal header, modal body
- (required for padding
), and modal footer (optional). We ask that you
- include modal headers with dismiss actions whenever possible, or provide another
- explicit dismiss action.
-
- Toggle a working modal demo by clicking the button below. It will slide down and fade - in from the top of the page. -
-
- If you don’t provide an onDimsiss
handler to the Modal component, your
- modal will behave as though the backdrop is static, meaning it will not close when
- clicking outside it. Click the button below to try it.
-
- If you don’t provide an onDimsiss
handler to the Modal component, your
- modal will behave as though the backdrop is static, meaning it will not close when
- clicking outside it. Click the button below to try it.
-
- You can also create a scrollable modal that allows scroll the modal body by adding{' '}
- scrollable
prop.
-
- Add alignment="center"
to <CModal>
to
- vertically center the modal.
-
- <CTooltips>
and <CPopovers>
can be placed within
- modals as needed. When modals are closed, any tooltips and popovers within are also
- automatically dismissed.
-
- Modals have three optional sizes, available via modifier classes to be placed on a{' '}
- <CModal>
. These sizes kick in at certain breakpoints to avoid
- horizontal scrollbars on narrower viewports.
-
Size | -Property size | -Modal max-width | -
---|---|---|
Small | -
- 'sm'
- |
-
- 300px
- |
-
Default | -None | -
- 500px
- |
-
Large | -
- 'lg'
- |
-
- 800px
- |
-
Extra large | -
- 'xl'
- |
-
- 1140px
- |
-
- Another override is the option to pop up a modal that covers the user viewport,
- available via property fullscrean
.
-
Property fullscrean | -Availability | -
---|---|
- true
- |
- Always | -
- 'sm'
- |
-
- Below 576px
- |
-
- 'md'
- |
-
- Below 768px
- |
-
- 'lg'
- |
-
- Below 992px
- |
-
- 'xl'
- |
-
- Below 1200px
- |
-
- 'xxl'
- |
-
- Below 1400px
- |
-
- Toasts are as flexible as you need and have very little required markup. At a minimum, - we require a single element to contain your “toasted” content and strongly encourage a - dismiss button. -
-- Toasts are slightly translucent to blend in with what's below them. -
-- You can stack toasts by wrapping them in a toast container, which will vertically add - some spacing. -
-
- Customize your toasts by removing sub-components, tweaking them with{' '}
- utilities, or by adding your
- own markup. Here we've created a simpler toast by removing the default{' '}
- <CToastHeader>
, adding a custom hide icon from{' '}
- CoreUI Icons, and using some{' '}
- flexbox utilities to adjust
- the layout.
-
- Alternatively, you can also add additional controls and components to toasts. -
-
- Building on the above example, you can create different toast color schemes with our{' '}
- color and{' '}
- background utilities.
- Here we've set color="primary"
and added{' '}
- .text-white
class to the <Ctoast>
, and then set{' '}
- white
property to our close button. For a crisp edge, we remove the
- default border with .border-0
.
-
Create your account
*/} - {/*HEX: | -{rgbToHex(color)} | -
RGB: | -{color} | -
- Documentation and examples for Bootstrap typography, including global settings, - headings, body text, lists, and more. -
-Heading | -Example | -
---|---|
-
- |
- - h1. Bootstrap heading - | -
-
- |
- - h2. Bootstrap heading - | -
-
- |
- - h3. Bootstrap heading - | -
-
- |
- - h4. Bootstrap heading - | -
-
- |
- - h5. Bootstrap heading - | -
-
- |
- - h6. Bootstrap heading - | -
- .h1
through
- .h6
- classes are also available, for when you want to match the font styling of a heading but
- cannot use the associated HTML element.
-
h1. Bootstrap heading
-h2. Bootstrap heading
-h3. Bootstrap heading
-h4. Bootstrap heading
-h5. Bootstrap heading
-h6. Bootstrap heading
-- Traditional heading elements are designed to work best in the meat of your page content. - When you need a heading to stand out, consider using a display heading - —a larger, slightly more opinionated heading style. -
-- Display 1 - | -
- Display 2 - | -
- Display 3 - | -
- Display 4 - | -
- Traditional heading elements are designed to work best in the meat of your page content. - When you need a heading to stand out, consider using a display heading - —a larger, slightly more opinionated heading style. -
-- You can use the mark tag to highlight text. -
-
- This line of text is meant to be treated as deleted text.
-
- This line of text is meant to be treated as no longer accurate.
-
- This line of text is meant to be treated as an addition to the document. -
-- This line of text will render as underlined -
-- This line of text is meant to be treated as fine print. -
-- This line rendered as bold text. -
-- This line rendered as italicized text. -
-
- Align terms and descriptions horizontally by using our grid system’s predefined classes
- (or semantic mixins). For longer terms, you can optionally add a{' '}
- .text-truncate
class to truncate the text
- with an ellipsis.
-
- Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit. -
-Donec id elit non mi porta gravida at eget metus.
-