<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jenry Mazariegos</title>
    <description>The latest articles on DEV Community by Jenry Mazariegos (@devjm).</description>
    <link>https://dev.to/devjm</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1114705%2F673c25d9-0a4a-4659-a45a-cc9d3990772e.png</url>
      <title>DEV Community: Jenry Mazariegos</title>
      <link>https://dev.to/devjm</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/devjm"/>
    <language>en</language>
    <item>
      <title>Laravel Nova - Dependent Filter</title>
      <dc:creator>Jenry Mazariegos</dc:creator>
      <pubDate>Sun, 15 Feb 2026 02:02:53 +0000</pubDate>
      <link>https://dev.to/devjm/laravel-nova-dependent-filter-2p5o</link>
      <guid>https://dev.to/devjm/laravel-nova-dependent-filter-2p5o</guid>
      <description>&lt;p&gt;Hi guys! Today I want to share a new custom component I built for Laravel Nova 4/5.&lt;/p&gt;

&lt;p&gt;The idea behind this package is simple: cascading dependent filters. If you've ever needed your Nova filters to talk to each other — where selecting a value in one filter automatically narrows the options in the next — this is for you.&lt;/p&gt;

&lt;p&gt;For example, imagine you have Clients, Projects, and Users. When you select a client, the Project filter should only show projects belonging to that client. Then, when you pick a project, the User filter narrows down to only the users assigned to that project.&lt;/p&gt;

&lt;p&gt;Nova doesn't support this out of the box, and building it from scratch every time is tedious. So I packaged it up into a clean, reusable solution:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;use DevJM\DependentFilter\Nova\Filters\DependentFilter;

$client = DependentFilter::make('Client', Client::class, 'client_id');

$project = DependentFilter::make('Project', Project::class, 'project_id')
    -&amp;gt;dependsOn($client, foreignKey: 'client_id');

$user = DependentFilter::make('User', User::class, 'user_id')
    -&amp;gt;dependsOn($project, relationship: 'projects');

return [$client, $project, $user];
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Three lines. Three cascading filters. No boilerplate.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Jenry-MA/nova-dependent-filter" rel="noopener noreferrer"&gt;Check it out&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>laravel</category>
      <category>nova</category>
      <category>filters</category>
    </item>
    <item>
      <title>Laravel Reverb in Production Environment</title>
      <dc:creator>Jenry Mazariegos</dc:creator>
      <pubDate>Wed, 20 Nov 2024 14:40:55 +0000</pubDate>
      <link>https://dev.to/devjm/laravel-reverb-in-production-environment-ljl</link>
      <guid>https://dev.to/devjm/laravel-reverb-in-production-environment-ljl</guid>
      <description>&lt;p&gt;Hi, before starting this tutorial, I recommend reading &lt;a href="https://dev.to/novu/the-ultimate-guide-to-laravel-reverb-real-time-notifications-48h4"&gt;The Ultimate Guide to Laravel Reverb: Real-Time Notifications&lt;/a&gt;, as this tutorial assumes you already have Laravel Reverb set up and working locally.&lt;/p&gt;

&lt;h2&gt;
  
  
  Basic Concepts
&lt;/h2&gt;

&lt;p&gt;First, it’s essential to understand how port connections work. Laravel Reverb uses two ports: one for connecting to the WebSocket and another for server communication.&lt;/p&gt;

&lt;p&gt;In this case, we will use port 443 for public access. This port is crucial for users accessing the webpage as it handles secure HTTPS traffic.&lt;/p&gt;

&lt;p&gt;For WebSocket communication, we will use port 6001. This port doesn’t need to be publicly accessible since it is only used internally by the server for real-time communication.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurations
&lt;/h2&gt;

&lt;p&gt;Now, let's modify out &lt;code&gt;.env&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;REVERB_HOST="your.domain.com" # your domain name here
REVERB_PORT=443 # The public port used by all clients on your website
REVERB_SCHEME=https # Required for prod environment

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Them in your nginx configuration put the next code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;server {
  listen 443 ssl;
  listen [::]:443 ssl;
  server_name your.server.name;
  {{ssl_certificate_key}}
  {{ssl_certificate}}

 location /app/ {
    proxy_http_version 1.1;
    proxy_set_header Host $http_host;
    proxy_set_header Scheme $scheme;
    proxy_set_header SERVER_PORT $server_port;
    proxy_set_header REMOTE_ADDR $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_pass http://0.0.0.0:6001;
}
location /apps {
    proxy_http_version 1.1;
    proxy_set_header Host $http_host;
    proxy_set_header Scheme $scheme;
    proxy_set_header SERVER_PORT $server_port;
    proxy_set_header REMOTE_ADDR $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_pass http://0.0.0.0:6001;
}
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What we do here? This setup securely redirects all WebSocket traffic from the public-facing port 443 to the internal WebSocket server on port 6001, enabling secure and efficient real-time communication between clients and the server.&lt;/p&gt;

&lt;p&gt;For Apache configurations you can read these posts.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/laravel/framework/discussions/50675" rel="noopener noreferrer"&gt;https://github.com/laravel/framework/discussions/50675&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/laravel/reverb/issues/107#issuecomment-2019340122" rel="noopener noreferrer"&gt;https://github.com/laravel/reverb/issues/107#issuecomment-2019340122&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After completing the configuration, the next step is to start the service. In a real-world scenario, you should use a process manager, such as &lt;strong&gt;Supervisor&lt;/strong&gt;, to ensure the service runs continuously and restarts automatically if needed.&lt;/p&gt;

&lt;p&gt;For testing purposes, however, you can run the command manually from the command line.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan reverb:start --port=6001 --debug
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we are ready to work with WebSocket in a production environment. Remember to restart the service and clear the cache before testing to ensure everything runs smoothly.&lt;/p&gt;

&lt;p&gt;A post that can help us gain a deeper understanding of this topic.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://laravel.com/docs/11.x/reverb#production" rel="noopener noreferrer"&gt;https://laravel.com/docs/11.x/reverb#production&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://medium.com/@saddanfah/how-to-use-laravel-reverb-in-production-server-d89e9670b76a" rel="noopener noreferrer"&gt;https://medium.com/@saddanfah/how-to-use-laravel-reverb-in-production-server-d89e9670b76a&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I hope this helps you get started! See you in the next post.&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>laravel</category>
      <category>reverb</category>
      <category>php</category>
    </item>
    <item>
      <title>Laravel</title>
      <dc:creator>Jenry Mazariegos</dc:creator>
      <pubDate>Wed, 13 Nov 2024 03:37:35 +0000</pubDate>
      <link>https://dev.to/devjm/laravel-5d79</link>
      <guid>https://dev.to/devjm/laravel-5d79</guid>
      <description></description>
    </item>
    <item>
      <title>How to override laravel nova components</title>
      <dc:creator>Jenry Mazariegos</dc:creator>
      <pubDate>Thu, 19 Sep 2024 15:53:57 +0000</pubDate>
      <link>https://dev.to/devjm/how-to-override-laravel-nova-components-4mnf</link>
      <guid>https://dev.to/devjm/how-to-override-laravel-nova-components-4mnf</guid>
      <description>&lt;p&gt;Hello again! Before starting the tutorial, you must have Laravel Nova already installed. Let's dive right in!&lt;/p&gt;

&lt;p&gt;Note: This tutorial is based on Laravel 10 and Nova 4.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;In this tutorial, we will learn how to customize the 404 error page in Laravel Nova. By default, Laravel Nova includes a 404 error page component, but if we want to customize it, there isn't a straightforward way to do so. Follow these steps to override Nova's default 404 error page with your own custom page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1
&lt;/h2&gt;

&lt;p&gt;We will use a Laravel Nova command to create a resource tool that will allow us to override the component. The resource tool must be named in the following format: &lt;code&gt;vendor/custom-nova-components&lt;/code&gt;, where &lt;code&gt;vendor&lt;/code&gt; is required, and you can choose any name after the &lt;code&gt;/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;php artisan nova:resource-tool vendor/custom-nova-components
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Laravel will prompt you with a few questions, and you should answer "yes" to all of them.&lt;/p&gt;

&lt;p&gt;After installing the resource tool, you will see a new directory called &lt;code&gt;nova-components&lt;/code&gt; where you will find your custom resource tool, in my case &lt;code&gt;custom-nova-components&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkl9kdyt01sy2s0lv11n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdkl9kdyt01sy2s0lv11n.png" alt="Image description" width="236" height="48"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2
&lt;/h2&gt;

&lt;p&gt;Now, we will override the &lt;code&gt;CustomError404&lt;/code&gt; component, which is the default view used by Laravel Nova for 404 errors. You can find the original component in:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;vendor/laravel/nova/resources/js/views/CustomError404.vue&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In our resource tool, locate the tool.js and &lt;code&gt;Tool.vue&lt;/code&gt; files. Rename &lt;code&gt;Tool.vue&lt;/code&gt; to &lt;code&gt;CustomError404.vue&lt;/code&gt;. Next, register the component in &lt;code&gt;tool.js&lt;/code&gt; as follows:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import CustomError404 from './components/CustomError404.vue'

Nova.booting((app, store) =&amp;gt; {
  app.component('CustomError404', CustomError404)
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, we've used the same name, &lt;code&gt;CustomError404&lt;/code&gt;, as in the Nova package. This will override the default Nova component with our custom one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3
&lt;/h2&gt;

&lt;p&gt;Once the component is registered, you can customize your &lt;code&gt;CustomError404.vue&lt;/code&gt; as you like. After making your changes, run in directory &lt;code&gt;nova-components/custom-nova-components&lt;/code&gt; the following command to compile the changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run prod
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it! You've successfully overridden the default Nova 404 error page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tips and notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Before overriding any Nova component, make sure to locate the component you want to customize in vendor/laravel/nova.&lt;/li&gt;
&lt;li&gt;You can use the same resource tool to override multiple components. Simply create additional Vue files in the components directory and register them in tool.js using the corresponding component name.&lt;/li&gt;
&lt;li&gt;Note that overridden components will inherit the default Nova layout, which cannot be changed.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>tutorial</category>
      <category>php</category>
      <category>laravel</category>
      <category>laravelnova</category>
    </item>
    <item>
      <title>How to use toast notification with ASP .Net Core</title>
      <dc:creator>Jenry Mazariegos</dc:creator>
      <pubDate>Fri, 07 Jul 2023 21:43:27 +0000</pubDate>
      <link>https://dev.to/devjm/how-to-use-toast-notification-with-asp-net-core-1g92</link>
      <guid>https://dev.to/devjm/how-to-use-toast-notification-with-asp-net-core-1g92</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Before start with the tutorial, make shore u already have jQuery installed, cause this library use jQuery, in this case I will use the latest version.&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.js"&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Let start!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We're going to use the toastr library, so go to the repositorie &lt;a href="https://github.com/CodeSeven/toastr" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Before make something else, first we create a directory in your project like this.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36yy2t3q0adpuyy16c3n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F36yy2t3q0adpuyy16c3n.png" alt="Image description" width="243" height="207"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As u can see, we have a folder named toastr where we have 2 files.&lt;br&gt;
Now let's create this 2 files(JS and CSS).&lt;/p&gt;

&lt;p&gt;So go to the repository that you opened before, enter the file toast.js in the repository, copy the code, and paste in your file project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feid6s7p7e9yzokbvx5si.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feid6s7p7e9yzokbvx5si.png" alt="Image description" width="800" height="740"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we'll do the same with the .scss file.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsjlv1rxyhnbh28px1msy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsjlv1rxyhnbh28px1msy.png" alt="Image description" width="800" height="751"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After this, put the references in your HTML.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkbdq9avaiqn0azjldb1o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkbdq9avaiqn0azjldb1o.png" alt="Image description" width="418" height="16"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; make shore you put the script after the jQuery script.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcpkb8ih2117eaioe11x1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcpkb8ih2117eaioe11x1.png" alt="Image description" width="664" height="76"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, we'll use the toast&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;input 
  onclick="test()"
  type="button"
/&amp;gt;

 &amp;lt;script type="text/javascript"&amp;gt;

   const test = () =&amp;gt; {        
     toastr.success('Have fun storming the castle!', 'Miracle Max Says')
    }

  &amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;we'll get this result&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpr91iwbsj6rn6nq3xifa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpr91iwbsj6rn6nq3xifa.png" alt="Image description" width="677" height="884"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Very easy right? toastr have a demo where u can personalize with some click and see the result, &lt;a href="https://codeseven.github.io/toastr/demo.html" rel="noopener noreferrer"&gt;here u have&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;See you soon.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>dotnetcore</category>
      <category>toast</category>
      <category>aspdotnet</category>
    </item>
    <item>
      <title>LUCIDE ICONS WITH ASP .NET CORE</title>
      <dc:creator>Jenry Mazariegos</dc:creator>
      <pubDate>Thu, 06 Jul 2023 17:56:58 +0000</pubDate>
      <link>https://dev.to/devjm/lucide-icons-with-asp-net-core-2djo</link>
      <guid>https://dev.to/devjm/lucide-icons-with-asp-net-core-2djo</guid>
      <description>&lt;p&gt;Today, i going to show you how to implement LUCIDE with ASP .NET CORE, we going suppose the project its already created.&lt;/p&gt;

&lt;p&gt;1- &lt;strong&gt;Create package.json&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In case you still no have package.json first you must create the file with the next command&lt;br&gt;
&lt;code&gt;npm init -y&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;2- &lt;strong&gt;Open Terminal Inside Visual Studio&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Go to View in the top and click on Terminal or Ctrl+`&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawjmnmy13z2iq4mop99f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fawjmnmy13z2iq4mop99f.png" alt="Image description" width="474" height="803"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;will appear this windows in the right bottom&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3oeq61pbdi6e4t9jfl6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3oeq61pbdi6e4t9jfl6.png" alt="Image description" width="800" height="94"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3- &lt;strong&gt;Install &lt;a href="https://lucide.dev" rel="noopener noreferrer"&gt;Lucide&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In the terminale write the next command &lt;br&gt;
&lt;code&gt;npm install lucide&lt;/code&gt;&lt;br&gt;
then press enter.&lt;/p&gt;

&lt;p&gt;After install, you can see in your package.json the next json.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F29gcdu3ezlvfyqgai683.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F29gcdu3ezlvfyqgai683.png" alt="Image description" width="708" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4- &lt;strong&gt;Usage&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now we're going to use the icons, let's see an example.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;i data-lucide="save"&amp;gt;&amp;lt;/i&amp;gt;&lt;/code&gt;&lt;br&gt;
Its simple right?&lt;/p&gt;

&lt;p&gt;Ok now let see in a input button with style&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&amp;lt;div class="flex flex-row gap-2 hover:cursor-pointer max-w-fit px-2 py-1 rounded shadow drop-shadow-md bg-blue-800 transform duration-300 hover:bg-blue-700 font-semibold font-mono text-white"&amp;gt;&lt;br&gt;
                    **&amp;lt;i data-lucide="save"&amp;gt;&amp;lt;/i&amp;gt;**&lt;br&gt;
                    &amp;lt;input &lt;br&gt;
                        type="submit"&lt;br&gt;
                        value="Guardar"&lt;br&gt;
                        class="hover:cursor-pointer"&lt;br&gt;
                     /&amp;gt;&lt;br&gt;
                &amp;lt;/div&amp;gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvbm3j8jja9ghfrxjdcr6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvbm3j8jja9ghfrxjdcr6.png" alt="Image description" width="150" height="50"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;as you can see its very simple to use, you can customize the color, size, etc.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;i class="w-10 h-10" data-lucide="save"&amp;gt;&amp;lt;/i&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkng3bk4ckltdvk57mr2w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkng3bk4ckltdvk57mr2w.png" alt="Image description" width="216" height="70"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;i data-lucide="save"&amp;gt;&amp;lt;/i&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvbm3j8jja9ghfrxjdcr6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvbm3j8jja9ghfrxjdcr6.png" alt="Image description" width="150" height="50"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We have reached the end of this post, I invite you to try this simple method, in which it will give a better appearance to your web application.&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>dotnetcore</category>
      <category>lucide</category>
      <category>icons</category>
    </item>
  </channel>
</rss>
