JSFiddle - React, Tailwind, and code Playground

HTML

<div class="basket__wrap">
            <div class="basket__item">
                <input class="basket__group" id="b_ukr" name="b_method" type="radio" data-count="18">
                <label for="b_ukr" class="basket__elem">
                 text 1
                </label>
            </div>
            <div class="basket__item">
                <input class="basket__group" id="b_nova" name="b_method" type="radio" data-count="3">
                <label for="b_nova" class="basket__elem">
                   text 2
                </label>
            </div>
            <div class="basket__item">
                <input class="basket__group" id="b_dhl" name="b_method" type="radio" data-count="8">
                <label for="b_dhl" class="basket__elem">
                    text 3
                </label>
            </div>
        </div>

CSS

.basket__wrap {
	display: flex;
	flex-wrap: wrap;
	margin: 0 -20px;
}

.basket__item {
	width: calc(100% / 3 - 40px);
	display: flex;
	align-items: center;
	box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
	padding: 15px 25px;
	margin: 0 20px;
	margin-bottom: 55px;
}

.basket__item input {
	display: none;
}

.basket__item input:checked + .basket__elem:before {
	opacity: 1;
}

.basket__elem {
	cursor: pointer;
	position: relative;
	user-select: none;
	display: inline-block;
	padding-left: 48px;
}

.basket__elem:after,
.basket__elem:before {
	position: absolute;
	content: ' ';
	border-radius: 50%;
}

.basket__elem:after {
	top: calc(50% - 12px);
	left: 0px;
	width: 24px;
	height: 24px;
	border: 2px solid #959595;
}

.basket__elem:before {
	opacity: 0;
	top: calc(50% - 7px);
	left: 5px;
	width: 14px;
	height: 14px;
	background-color: #959595;
}

* {
  box-sizing: border-box;
}

*:after,
&:before{
  box-sizing: border-box;
}