Support CoreUI Development
CoreUI is an MIT-licensed open source project and is completely free to use. However, the amount of effort needed to maintain and develop new features for the project is not sustainable without proper financial backing.
You can support our Open Source software development in the following ways:
- Buy the CoreUI PRO and get access to all PRO components, features, templates, and dedicated support.
- Hire Us! We create stunning designs, high-conversion landing pages, functional mobile apps and reliable web services – everything you need to offer your products or services online and always stay a tap away from your customers.
- Give us a star ⭐️ on Github.
Borders
Use border utilities to quickly style the border and border-radius of an element. Great for images, buttons, or any other element.
Border
Use border utilities to add or remove an element’s borders. Choose from all borders or one at a time.
Additive
<span class="border"></span>
<span class="border-top"></span>
<span class="border-end"></span>
<span class="border-bottom"></span>
<span class="border-start"></span>
Subtractive
Or remove borders:
<span class="border border-0"></span>
<span class="border border-top-0"></span>
<span class="border border-end-0"></span>
<span class="border border-bottom-0"></span>
<span class="border border-start-0"></span>
Color
Change the border color using utilities built on our theme colors.
<span class="border border-primary"></span>
<span class="border border-secondary"></span>
<span class="border border-success"></span>
<span class="border border-danger"></span>
<span class="border border-warning"></span>
<span class="border border-info"></span>
<span class="border border-light"></span>
<span class="border border-dark"></span>
<span class="border border-white"></span>
Using utilities you can change the border on one side only, or you can change all borders to make them different colors.
<span class="border-top border-top-primary"></span>
<span class="border-end border-end-primary"></span>
<span class="border-bottom border-bottom-primary"></span>
<span class="border-start border-start-primary"></span>
<span class="border-start border-start-primary border-end border-end-danger"></span>
<span class="border-top border-top-primary border-end border-end-danger border-bottom border-bottom-success"></span>
<span class="border border-top-primary border-end-danger border-bottom-success border-start-info"></span>
Border-width
Or modify the default border-color
of a component:
<div class="mb-4">
<label for="exampleFormControlInput1" class="form-label">Email address</label>
<input type="email" class="form-control border-success" id="exampleFormControlInput1" placeholder="[email protected]">
</div>
<div class="h4 pb-2 mb-4 text-danger border-bottom border-danger">
Dangerous heading
</div>
<div class="p-3 bg-info bg-opacity-10 border border-info border-start-0 rounded-end">
Changing border color and width
</div>
Opacity
Added in v4.2.6Bootstrap border-{color}
utilities are generated with Sass using CSS variables. This allows for real-time color changes without compilation and dynamic alpha transparency changes.
How it works
Consider our default .border-success
utility.
.border-success {
--cui-border-opacity: 1;
border-color: rgba(var(--cui-success-rgb), var(--cui-border-opacity)) !important;
}
We use an RGB version of our --cui-success
(with the value of 25, 135, 84
) CSS variable and attached a second CSS variable, --cui-border-opacity
, for the alpha transparency (with a default value 1
thanks to a local CSS variable). That means anytime you use .border-success
now, your computed color
value is rgba(25, 135, 84, 1)
. The local CSS variable inside each .border-*
class avoids inheritance issues so nested instances of the utilities don’t automatically have a modified alpha transparency.
Example
To change that opacity, override --cui-border-opacity
via custom styles or inline styles.
<div class="border border-success p-2 mb-2">This is default success border</div>
<div class="border border-success p-2" style="--cui-border-opacity: .5;">This is 50% opacity success border</div>
Or, choose from any of the .border-opacity
utilities:
<div class="border border-success p-2 mb-2">This is default success border</div>
<div class="border border-success p-2 mb-2 border-opacity-75">This is 75% opacity success border</div>
<div class="border border-success p-2 mb-2 border-opacity-50">This is 50% opacity success border</div>
<div class="border border-success p-2 mb-2 border-opacity-25">This is 25% opacity success border</div>
<div class="border border-success p-2 border-opacity-10">This is 10% opacity success border</div>
Width
<span class="border border-1"></span>
<span class="border border-2"></span>
<span class="border border-3"></span>
<span class="border border-4"></span>
<span class="border border-5"></span>
<span class="border border-1 border-info"></span>
<span class="border border-2 border-info"></span>
<span class="border border-3 border-info"></span>
<span class="border border-4 border-info"></span>
<span class="border border-5 border-info"></span>
<span class="border-start border-start-1"></span>
<span class="border-start border-start-2"></span>
<span class="border-start border-start-3"></span>
<span class="border-start border-start-4"></span>
<span class="border-start border-start-5"></span>
<span class="border-start border-start-1 border-start-info"></span>
<span class="border-start border-start-2 border-start-info"></span>
<span class="border-start border-start-3 border-start-info"></span>
<span class="border-start border-start-4 border-start-info"></span>
<span class="border-start border-start-5 border-start-info"></span>
Radius
Add classes to an element to easily round its corners.
<img src="..." class="rounded" alt="...">
<img src="..." class="rounded-top" alt="...">
<img src="..." class="rounded-end" alt="...">
<img src="..." class="rounded-bottom" alt="...">
<img src="..." class="rounded-start" alt="...">
<img src="..." class="rounded-circle" alt="...">
<img src="..." class="rounded-pill" alt="...">
Sizes
Use the scaling classes for larger or smaller rounded corners. Sizes range from 0
to 5
, and can be configured by modifying the utilities API.
<img src="..." class="rounded-0" alt="...">
<img src="..." class="rounded-1" alt="...">
<img src="..." class="rounded-2" alt="...">
<img src="..." class="rounded-3" alt="...">
<img src="..." class="rounded-4" alt="...">
<img src="..." class="rounded-5" alt="...">
CSS
Variables
--cui-border-width: #{$border-width};
--cui-border-style: #{$border-style};
--cui-border-color: #{$border-color};
--cui-border-color-translucent: #{$border-color-translucent};
--cui-border-radius: #{$border-radius};
--cui-border-radius-sm: #{$border-radius-sm};
--cui-border-radius-lg: #{$border-radius-lg};
--cui-border-radius-xl: #{$border-radius-xl};
--cui-border-radius-2xl: #{$border-radius-2xl};
--cui-border-radius-pill: #{$border-radius-pill};
Sass variables
$border-width: 1px;
$border-widths: (
1: 1px,
2: 2px,
3: 3px,
4: 4px,
5: 5px
);
$border-style: solid;
$border-color: $gray-200;
$border-color-translucent: rgba($black, .175);
$border-radius: .375rem;
$border-radius-sm: .25rem;
$border-radius-lg: .5rem;
$border-radius-xl: 1rem;
$border-radius-2xl: 2rem;
$border-radius-pill: 50rem;
Sass mixins
@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {
@if $enable-rounded {
border-radius: valid-radius($radius);
}
@else if $fallback-border-radius != false {
border-radius: $fallback-border-radius;
}
}
@mixin border-top-radius($radius: $border-radius) {
@if $enable-rounded {
border-top-left-radius: valid-radius($radius);
border-top-right-radius: valid-radius($radius);
}
}
@mixin border-end-radius($radius: $border-radius) {
@if $enable-rounded {
@include ltr-rtl("border-top-right-radius", valid-radius($radius));
@include ltr-rtl("border-bottom-right-radius", valid-radius($radius));
}
}
@mixin border-bottom-radius($radius: $border-radius) {
@if $enable-rounded {
border-bottom-right-radius: valid-radius($radius);
border-bottom-left-radius: valid-radius($radius);
}
}
@mixin border-start-radius($radius: $border-radius) {
@if $enable-rounded {
@include ltr-rtl("border-top-left-radius", valid-radius($radius));
@include ltr-rtl("border-bottom-left-radius", valid-radius($radius));
}
}
@mixin border-top-start-radius($radius: $border-radius) {
@if $enable-rounded {
border-top-left-radius: valid-radius($radius);
}
}
@mixin border-top-end-radius($radius: $border-radius) {
@if $enable-rounded {
@include ltr-rtl("border-top-right-radius", valid-radius($radius));
}
}
@mixin border-bottom-end-radius($radius: $border-radius) {
@if $enable-rounded {
@include ltr-rtl("border-bottom-right-radius", valid-radius($radius));
}
}
@mixin border-bottom-start-radius($radius: $border-radius) {
@if $enable-rounded {
@include ltr-rtl("border-bottom-left-radius", valid-radius($radius));
}
}
Utilities API
Border utilities are declared in our utilities API in scss/_utilities.scss
. Learn how to use the utilities API.
"border": (
property: border,
values: (
null: var(--cui-border-width) var(--cui-border-style) var(--cui-border-color),
0: 0,
),
),
"border-top": (
property: border-top,
values: (
null: var(--cui-border-width) var(--cui-border-style) var(--cui-border-color),
0: 0,
)
),
"border-end": (
property: border-right,
class: border-end,
values: (
null: var(--cui-border-width) var(--cui-border-style) var(--cui-border-color),
0: 0,
),
rtl: true
),
"border-bottom": (
property: border-bottom,
values: (
null: var(--cui-border-width) var(--cui-border-style) var(--cui-border-color),
0: 0,
)
),
"border-start": (
property: border-left,
class: border-start,
values: (
null: var(--cui-border-width) var(--cui-border-style) var(--cui-border-color),
0: 0,
),
rtl: true
),
"border-color": (
property: border-color,
class: border,
local-vars: (
"border-opacity": 1
),
values: $utilities-border-colors
),
"border-top-color": (
property: border-top-color,
class: border-top,
values: map-merge($theme-colors, ("white": $white)),
vars: true
),
"border-end-color": (
property: border-right-color,
class: border-end,
values: map-merge($theme-colors, ("white": $white)),
vars: true,
rtl: true
),
"border-bottom-color": (
property: border-bottom-color,
class: border-bottom,
values: map-merge($theme-colors, ("white": $white)),
vars: true
),
"border-start-color": (
property: border-left-color,
class: border-start,
values: map-merge($theme-colors, ("white": $white)),
vars: true,
rtl: true
),
"border-width": (
css-var: true,
css-variable-name: border-width,
class: border,
values: $border-widths
),
"border-top-width": (
property: border-top-width,
class: border-top,
values: $border-widths
),
"border-end-width": (
property: border-right-width,
class: border-end,
values: $border-widths,
rtl: true
),
"border-bottom-width": (
property: border-bottom-width,
class: border-bottom,
values: $border-widths
),
"border-start-width": (
property: border-left-width,
class: border-start,
values: $border-widths,
rtl: true
),
"border-opacity": (
css-var: true,
class: border-opacity,
values: (
10: .1,
25: .25,
50: .5,
75: .75,
100: 1
)
),
"rounded": (
property: border-radius,
class: rounded,
values: (
null: var(--cui-border-radius),
0: 0,
1: var(--cui-border-radius-sm),
2: var(--cui-border-radius),
3: var(--cui-border-radius-lg),
4: var(--cui-border-radius-xl),
5: var(--cui-border-radius-2xl),
circle: 50%,
pill: var(--cui-border-radius-pill)
)
),
"rounded-top": (
property: border-top-left-radius border-top-right-radius,
class: rounded-top,
values: (null: var(--cui-border-radius))
),
"rounded-end": (
property: border-top-right-radius border-bottom-right-radius,
class: rounded-end,
values: (null: var(--cui-border-radius)),
rtl: true
),
"rounded-bottom": (
property: border-bottom-right-radius border-bottom-left-radius,
class: rounded-bottom,
values: (null: var(--cui-border-radius))
),
"rounded-start": (
property: border-bottom-left-radius border-top-left-radius,
class: rounded-start,
values: (null: var(--cui-border-radius)),
rtl: true
),