Shivam Mehta

1667805453

Reactjs vs React Native – Which is the Best Option to Consider For Mob

Intro

The team at Facebook needed something to build a high-performing and dynamic UI so they came up with ReactJS in 2011. This development platform is a javascript library that consists of the speed of javascript and has an innovative way of rendering pages.

The platform became an immediate success and with its growing popularity, the team at Facebook open-sourced ReactJS two years after its initial release. And in 2015, Facebook launched React Native.

Now, both platforms have many similarities and differences. But here the question is which one of them will be more suitable for the development of mobile apps. And for that, one has to surf through a detailed comparison between ReactJS and React Native. Nowadays, businesses tend to hire ReactJS developers in India for their software projects but before doing that, they must know what these platforms are and what their capabilities are.

Therefore, in this blog on ReactJS vs React Native, we are going to discuss the basics of this platform, its pros, and cons and then we will look at the key factors that distinguish these platforms. And at last, we will conclude which one of these platforms is more suitable for mobile app development. So to know your answer and make an informed choice, you must read the entire blog through to the end.

Reactjs

Reactjs is a JavaScript library. It allows you to declaratively create an app, or any part of it, and then manipulate its appearance on the fly. You can build apps that look exactly like they run in your browser with the same code that you write in Reactjs.

Reactjs is made up of two parts: the template language and the virtual DOM diffing algorithm. The first is used for creating virtual components which can be rendered by the framework at runtime; this allows us to create reusable UI elements that don't need to be created from scratch every single time. The second part is responsible for comparing different versions of these components and updating their DOM accordingly when needed.

Reactjs was built by Facebook engineers and has been open-sourced under MIT/BSD license since 2013.

Pros of Reactjs:

  • You can create dynamic UIs using the virtual DOM, which makes your application load faster. The virtual DOM also makes your code easier to maintain because you don't have to worry about updating entire components at once if they're affected by changes in your data or some other part of your UI.
  • The lack of complex syntax makes it easier for beginners to understand how things work in Reactjs compared with other frameworks such as Angular or Ember.
  • It’s easy to learn because it uses only JavaScript and HTML, so you don’t have to learn any other language.
  • It has a slight learning curve, so you can start building websites right away without having to spend time relearning how to program.
  • The language is modern and popular, so many tools out there make development easier.
  • The community around React is large and active with lots of online resources that can help you learn more about React or build your app from scratch.

Cons of Reactjs:

Reactjs does not provide any specific view layer implementation. Instead, it relies on some implementations of Virtual DOM for rendering functionality. These implementations vary in terms of performance and capabilities.

React Native

React Native is a fast, lightweight, and flexible framework that allows developers to create apps for iOS, Android, and the web. This means that you could potentially build an app for any of these platforms with a single code base. You’ll also have the ability to share components between the various platforms.

This is a very popular option for those who want to learn how to create mobile apps without having to spend time learning Objective-C or Java. It’s also an option that’s accessible to most developers, whether they have some experience with React or not.

React Native includes React, ReactDOM, and JSX rendering components that are developed using the same API as JavaScript. It also offers a building block approach to mobile app development. The idea is to use JavaScript as the main language for the front end of your app and to build native components using React Native.

Pros of React Native:

  • Code reuse: The learnings from ReactJS can be used in React Native. As per the official documentation, “React Native uses the same core APIs as React to render views and manage state”.
  • Portability: The same code can be used for both native apps and web apps with React Native. This helps developers to work on both platforms without any code duplication or compilation/translating issues.
  • Fast performance: The performance of a mobile app built with react-native is similar to that of a native app built with Xcode or Android Studio (depending on your build system). This means that you don’t need to compromise on the performance of your app while porting it from one platform to another one.
  • Large community: React Native has an incredibly large community of developers who are constantly creating new libraries, tools, and plugins for React Native which make it easier to work with. As well as this many third-party services offer great value add such as integrating with Stripe or Firebase or implementing authentication via Google authentication.
  • Short learning curve: React Native uses JavaScript as its primary language, so if you already know JavaScript then you’ll feel right at home when working with React Native. Furthermore, since it works through JavaScript, you can use most of your existing knowledge when learning React Native if you need to!

Cons of React Native:

  • Compatibility with other platforms is still an issue. Android support is coming soon, but iPhone support has been delayed until 2020.
  • It's not just about building apps anymore; it's about writing apps that look like native apps. That means you need to use the same UI guidelines and design standards as iOS/Android developers have used for years.

Key differences between Reactjs and React Native

Reactjs and React Native are two different but related JavaScript frameworks for building user interfaces.

The first thing to understand is that React Native isn't just a fork of ReactJS, it's the same framework with a new UI library called RN (React Native) that provides access to native APIs from JavaScript. This means that you can write apps in ReactJS and run them on iOS and Android without having to rewrite your code to target iOS or Android separately.

React Native supports only one main thread at a time while ReactJS supports multiple rendering threads. This means that in some cases you might need to wait for your data changes before updating the UI or performing other tasks completely out of order.

Another key difference between React Native and React is that React Native uses the same APIs as React, but is designed to target multiple platforms: iOS, Android, and desktop.

We can also distinguish that Reactjs uses JSX syntax while Reactnative uses swift syntax.

React Native also has an advantage over React in that it allows you to create single-page apps with more features than those offered by AngularJS or Vue.js. This includes things like push notifications and data binding, which are not available in Angular or Vue.js but are available in React Native.

Conclusion

We know that React Native is used to build native, cross-platform mobile applications whereas ReactJS is used to create high-performing user interfaces.

We saw that React Native and ReactJS are both very similar platforms. It possesses all the syntax and principles of React and their learning curves are similar too. The differences occur at the development platform. While React uses virtual DOM to generate browser code, React Native utilizes Native APIs to build components for mobile applications.

With React, if you know HTML or CSS, you are good to go but with React Native that is not the case, you need to know the React Native syntax. You must understand how to use animated APIs to create various components for your native apps.

From all the discussion above, we conclude that ReactJS is an ideal choice for the development of high-performing, dynamic and responsive user interfaces for your websites while React Native is perfect for the development of native mobile applications.

Source

What is GEEK

Buddha Community

Autumn  Blick

Autumn Blick

1598839687

How native is React Native? | React Native vs Native App Development

If you are undertaking a mobile app development for your start-up or enterprise, you are likely wondering whether to use React Native. As a popular development framework, React Native helps you to develop near-native mobile apps. However, you are probably also wondering how close you can get to a native app by using React Native. How native is React Native?

In the article, we discuss the similarities between native mobile development and development using React Native. We also touch upon where they differ and how to bridge the gaps. Read on.

A brief introduction to React Native

Let’s briefly set the context first. We will briefly touch upon what React Native is and how it differs from earlier hybrid frameworks.

React Native is a popular JavaScript framework that Facebook has created. You can use this open-source framework to code natively rendering Android and iOS mobile apps. You can use it to develop web apps too.

Facebook has developed React Native based on React, its JavaScript library. The first release of React Native came in March 2015. At the time of writing this article, the latest stable release of React Native is 0.62.0, and it was released in March 2020.

Although relatively new, React Native has acquired a high degree of popularity. The “Stack Overflow Developer Survey 2019” report identifies it as the 8th most loved framework. Facebook, Walmart, and Bloomberg are some of the top companies that use React Native.

The popularity of React Native comes from its advantages. Some of its advantages are as follows:

  • Performance: It delivers optimal performance.
  • Cross-platform development: You can develop both Android and iOS apps with it. The reuse of code expedites development and reduces costs.
  • UI design: React Native enables you to design simple and responsive UI for your mobile app.
  • 3rd party plugins: This framework supports 3rd party plugins.
  • Developer community: A vibrant community of developers support React Native.

Why React Native is fundamentally different from earlier hybrid frameworks

Are you wondering whether React Native is just another of those hybrid frameworks like Ionic or Cordova? It’s not! React Native is fundamentally different from these earlier hybrid frameworks.

React Native is very close to native. Consider the following aspects as described on the React Native website:

  • Access to many native platforms features: The primitives of React Native render to native platform UI. This means that your React Native app will use many native platform APIs as native apps would do.
  • Near-native user experience: React Native provides several native components, and these are platform agnostic.
  • The ease of accessing native APIs: React Native uses a declarative UI paradigm. This enables React Native to interact easily with native platform APIs since React Native wraps existing native code.

Due to these factors, React Native offers many more advantages compared to those earlier hybrid frameworks. We now review them.

#android app #frontend #ios app #mobile app development #benefits of react native #is react native good for mobile app development #native vs #pros and cons of react native #react mobile development #react native development #react native experience #react native framework #react native ios vs android #react native pros and cons #react native vs android #react native vs native #react native vs native performance #react vs native #why react native #why use react native

CODE VN

CODE VN

1655734395

Cách tạo các nút radio tùy chỉnh tuyệt vời chỉ sử dụng HTML và CSS

Trong hướng dẫn này, bạn sẽ học cách tạo các Nút radio tùy chỉnh tuyệt vời chỉ bằng HTML và CSS. Để tạo các Nút radio tùy chỉnh tuyệt vời chỉ bằng HTML và CSS. Đầu tiên, bạn cần tạo hai Tệp, một Tệp HTML và một tệp khác là Tệp CSS.

1: Đầu tiên, tạo một tệp HTML với tên là index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Custom Radio Buttons | Codequs</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="wrapper">
    <div class="title">Select your option</div>
    <div class="box">
      <input type="radio" name="select" id="option-1">
      <input type="radio" name="select" id="option-2">
      <input type="radio" name="select" id="option-3">
      <input type="radio" name="select" id="option-4">
      <label for="option-1" class="option-1">
        <div class="dot"></div>
        <div class="text">Gamer</div>
      </label>
      <label for="option-2" class="option-2">
        <div class="dot"></div>
        <div class="text">YouTuber</div>
      </label>
      <label for="option-3" class="option-3">
        <div class="dot"></div>
        <div class="text">Student</div>
      </label>
      <label for="option-4" class="option-4">
        <div class="dot"></div>
        <div class="text">Developer</div>
      </label>
    </div>
  </div>

</body>
</html>

2: Thứ hai, tạo một tệp CSS với tên là style.css

 

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
}
html,body{
  display: grid;
  height: 100%;
  place-items: center;
}
.wrapper{
  width: 350px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 5px 5px 30px rgba(0,0,0,0.2);
}
.wrapper .title{
  color: #fff;
  line-height: 65px;
  text-align: center;
  background: #333;
  font-size: 25px;
  font-weight: 500;
  border-radius: 10px 10px 0 0;
}
.wrapper .box{
  padding: 20px 30px;
  background: #fff;
  border-radius: 10px;
}
.wrapper .box label{
  display: flex;
  height: 53px;
  width: 100%;
  align-items: center;
  border: 1px solid lightgrey;
  border-radius: 50px;
  margin: 10px 0;
  padding-left: 20px;
  cursor: default;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1,
#option-2:checked ~ .option-2,
#option-3:checked ~ .option-3,
#option-4:checked ~ .option-4{
  background: #333;
  border-color: #333;
}
.wrapper .box label .dot{
  height: 20px;
  width: 20px;
  background: #d9d9d9;
  border-radius: 50%;
  position: relative;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot,
#option-2:checked ~ .option-2 .dot,
#option-3:checked ~ .option-3 .dot,
#option-4:checked ~ .option-4 .dot{
  background: #fff;
}
.box label .dot::before{
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(2);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot::before,
#option-2:checked ~ .option-2 .dot::before,
#option-3:checked ~ .option-3 .dot::before,
#option-4:checked ~ .option-4 .dot::before{
  background: #333;
  transform: translate(-50%, -50%) scale(1);
}
.wrapper .box label .text{
  color: #333;
  font-size: 18px;
  font-weight: 400;
  padding-left: 10px;
  transition: color 0.3s ease;
}
#option-1:checked ~ .option-1 .text,
#option-2:checked ~ .option-2 .text,
#option-3:checked ~ .option-3 .text,
#option-4:checked ~ .option-4 .text{
  color: #fff;
}
.wrapper .box input[type="radio"]{
  display: none;
}

Bây giờ bạn đã tạo thành công các Nút radio tùy chỉnh tuyệt vời chỉ bằng HTML và CSS.

So erstellen Sie fantastische benutzerdefinierte Optionsfelder nur mit HTML und CSS

In diesem Leitfaden erfahren Sie, wie Sie fantastische benutzerdefinierte Optionsfelder nur mit HTML und CSS erstellen. Um fantastische benutzerdefinierte Optionsfelder nur mit HTML und CSS zu erstellen. Zuerst müssen Sie zwei Dateien erstellen, eine HTML-Datei und eine CSS-Datei.

1: Erstellen Sie zunächst eine HTML-Datei mit dem Namen index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Custom Radio Buttons | Codequs</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="wrapper">
    <div class="title">Select your option</div>
    <div class="box">
      <input type="radio" name="select" id="option-1">
      <input type="radio" name="select" id="option-2">
      <input type="radio" name="select" id="option-3">
      <input type="radio" name="select" id="option-4">
      <label for="option-1" class="option-1">
        <div class="dot"></div>
        <div class="text">Gamer</div>
      </label>
      <label for="option-2" class="option-2">
        <div class="dot"></div>
        <div class="text">YouTuber</div>
      </label>
      <label for="option-3" class="option-3">
        <div class="dot"></div>
        <div class="text">Student</div>
      </label>
      <label for="option-4" class="option-4">
        <div class="dot"></div>
        <div class="text">Developer</div>
      </label>
    </div>
  </div>

</body>
</html>

2: Zweitens erstellen Sie eine CSS-Datei mit dem Namen style.css

 

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
}
html,body{
  display: grid;
  height: 100%;
  place-items: center;
}
.wrapper{
  width: 350px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 5px 5px 30px rgba(0,0,0,0.2);
}
.wrapper .title{
  color: #fff;
  line-height: 65px;
  text-align: center;
  background: #333;
  font-size: 25px;
  font-weight: 500;
  border-radius: 10px 10px 0 0;
}
.wrapper .box{
  padding: 20px 30px;
  background: #fff;
  border-radius: 10px;
}
.wrapper .box label{
  display: flex;
  height: 53px;
  width: 100%;
  align-items: center;
  border: 1px solid lightgrey;
  border-radius: 50px;
  margin: 10px 0;
  padding-left: 20px;
  cursor: default;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1,
#option-2:checked ~ .option-2,
#option-3:checked ~ .option-3,
#option-4:checked ~ .option-4{
  background: #333;
  border-color: #333;
}
.wrapper .box label .dot{
  height: 20px;
  width: 20px;
  background: #d9d9d9;
  border-radius: 50%;
  position: relative;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot,
#option-2:checked ~ .option-2 .dot,
#option-3:checked ~ .option-3 .dot,
#option-4:checked ~ .option-4 .dot{
  background: #fff;
}
.box label .dot::before{
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(2);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot::before,
#option-2:checked ~ .option-2 .dot::before,
#option-3:checked ~ .option-3 .dot::before,
#option-4:checked ~ .option-4 .dot::before{
  background: #333;
  transform: translate(-50%, -50%) scale(1);
}
.wrapper .box label .text{
  color: #333;
  font-size: 18px;
  font-weight: 400;
  padding-left: 10px;
  transition: color 0.3s ease;
}
#option-1:checked ~ .option-1 .text,
#option-2:checked ~ .option-2 .text,
#option-3:checked ~ .option-3 .text,
#option-4:checked ~ .option-4 .text{
  color: #fff;
}
.wrapper .box input[type="radio"]{
  display: none;
}

Jetzt haben Sie erfolgreich fantastische benutzerdefinierte Optionsfelder nur mit HTML und CSS erstellt.

Cómo crear impresionantes botones de radio personalizados usando solo HTML y CSS

En esta guía, aprenderá cómo crear impresionantes botones de radio personalizados usando solo HTML y CSS. Para crear impresionantes botones de radio personalizados usando solo HTML y CSS. Primero, debe crear dos archivos, un archivo HTML y otro es un archivo CSS.

1: Primero, cree un archivo HTML con el nombre de index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Custom Radio Buttons | Codequs</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="wrapper">
    <div class="title">Select your option</div>
    <div class="box">
      <input type="radio" name="select" id="option-1">
      <input type="radio" name="select" id="option-2">
      <input type="radio" name="select" id="option-3">
      <input type="radio" name="select" id="option-4">
      <label for="option-1" class="option-1">
        <div class="dot"></div>
        <div class="text">Gamer</div>
      </label>
      <label for="option-2" class="option-2">
        <div class="dot"></div>
        <div class="text">YouTuber</div>
      </label>
      <label for="option-3" class="option-3">
        <div class="dot"></div>
        <div class="text">Student</div>
      </label>
      <label for="option-4" class="option-4">
        <div class="dot"></div>
        <div class="text">Developer</div>
      </label>
    </div>
  </div>

</body>
</html>

2: Segundo, crea un archivo CSS con el nombre de style.css

 

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
}
html,body{
  display: grid;
  height: 100%;
  place-items: center;
}
.wrapper{
  width: 350px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 5px 5px 30px rgba(0,0,0,0.2);
}
.wrapper .title{
  color: #fff;
  line-height: 65px;
  text-align: center;
  background: #333;
  font-size: 25px;
  font-weight: 500;
  border-radius: 10px 10px 0 0;
}
.wrapper .box{
  padding: 20px 30px;
  background: #fff;
  border-radius: 10px;
}
.wrapper .box label{
  display: flex;
  height: 53px;
  width: 100%;
  align-items: center;
  border: 1px solid lightgrey;
  border-radius: 50px;
  margin: 10px 0;
  padding-left: 20px;
  cursor: default;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1,
#option-2:checked ~ .option-2,
#option-3:checked ~ .option-3,
#option-4:checked ~ .option-4{
  background: #333;
  border-color: #333;
}
.wrapper .box label .dot{
  height: 20px;
  width: 20px;
  background: #d9d9d9;
  border-radius: 50%;
  position: relative;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot,
#option-2:checked ~ .option-2 .dot,
#option-3:checked ~ .option-3 .dot,
#option-4:checked ~ .option-4 .dot{
  background: #fff;
}
.box label .dot::before{
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(2);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot::before,
#option-2:checked ~ .option-2 .dot::before,
#option-3:checked ~ .option-3 .dot::before,
#option-4:checked ~ .option-4 .dot::before{
  background: #333;
  transform: translate(-50%, -50%) scale(1);
}
.wrapper .box label .text{
  color: #333;
  font-size: 18px;
  font-weight: 400;
  padding-left: 10px;
  transition: color 0.3s ease;
}
#option-1:checked ~ .option-1 .text,
#option-2:checked ~ .option-2 .text,
#option-3:checked ~ .option-3 .text,
#option-4:checked ~ .option-4 .text{
  color: #fff;
}
.wrapper .box input[type="radio"]{
  display: none;
}

Ahora ha creado con éxito impresionantes botones de radio personalizados usando solo HTML y CSS.

Как создать потрясающие настраиваемые радиокнопки, используя только HTML и CSS

В этом руководстве вы узнаете, как создавать потрясающие настраиваемые радиокнопки, используя только HTML и CSS. Чтобы создать удивительные пользовательские радиокнопки, используя только HTML и CSS. Во-первых, вам нужно создать два файла: один файл HTML, а другой — файл CSS.

1: Сначала создайте файл HTML с именем index.html.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Custom Radio Buttons | Codequs</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
  <div class="wrapper">
    <div class="title">Select your option</div>
    <div class="box">
      <input type="radio" name="select" id="option-1">
      <input type="radio" name="select" id="option-2">
      <input type="radio" name="select" id="option-3">
      <input type="radio" name="select" id="option-4">
      <label for="option-1" class="option-1">
        <div class="dot"></div>
        <div class="text">Gamer</div>
      </label>
      <label for="option-2" class="option-2">
        <div class="dot"></div>
        <div class="text">YouTuber</div>
      </label>
      <label for="option-3" class="option-3">
        <div class="dot"></div>
        <div class="text">Student</div>
      </label>
      <label for="option-4" class="option-4">
        <div class="dot"></div>
        <div class="text">Developer</div>
      </label>
    </div>
  </div>

</body>
</html>

2: Во-вторых, создайте файл CSS с именем style.css.

 

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
}
html,body{
  display: grid;
  height: 100%;
  place-items: center;
}
.wrapper{
  width: 350px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 5px 5px 30px rgba(0,0,0,0.2);
}
.wrapper .title{
  color: #fff;
  line-height: 65px;
  text-align: center;
  background: #333;
  font-size: 25px;
  font-weight: 500;
  border-radius: 10px 10px 0 0;
}
.wrapper .box{
  padding: 20px 30px;
  background: #fff;
  border-radius: 10px;
}
.wrapper .box label{
  display: flex;
  height: 53px;
  width: 100%;
  align-items: center;
  border: 1px solid lightgrey;
  border-radius: 50px;
  margin: 10px 0;
  padding-left: 20px;
  cursor: default;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1,
#option-2:checked ~ .option-2,
#option-3:checked ~ .option-3,
#option-4:checked ~ .option-4{
  background: #333;
  border-color: #333;
}
.wrapper .box label .dot{
  height: 20px;
  width: 20px;
  background: #d9d9d9;
  border-radius: 50%;
  position: relative;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot,
#option-2:checked ~ .option-2 .dot,
#option-3:checked ~ .option-3 .dot,
#option-4:checked ~ .option-4 .dot{
  background: #fff;
}
.box label .dot::before{
  position: absolute;
  content: "";
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(2);
  width: 9px;
  height: 9px;
  border-radius: 50%;
  transition: all 0.3s ease;
}
#option-1:checked ~ .option-1 .dot::before,
#option-2:checked ~ .option-2 .dot::before,
#option-3:checked ~ .option-3 .dot::before,
#option-4:checked ~ .option-4 .dot::before{
  background: #333;
  transform: translate(-50%, -50%) scale(1);
}
.wrapper .box label .text{
  color: #333;
  font-size: 18px;
  font-weight: 400;
  padding-left: 10px;
  transition: color 0.3s ease;
}
#option-1:checked ~ .option-1 .text,
#option-2:checked ~ .option-2 .text,
#option-3:checked ~ .option-3 .text,
#option-4:checked ~ .option-4 .text{
  color: #fff;
}
.wrapper .box input[type="radio"]{
  display: none;
}

Теперь вы успешно создали потрясающие настраиваемые радиокнопки, используя только HTML и CSS.