diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..25da6e6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.obsidian
\ No newline at end of file
diff --git a/tailwindcss/introduction/Tailwind Presentation-version2.md b/tailwindcss/introduction/Tailwind Presentation-version2.md
new file mode 100644
index 0000000..296d099
--- /dev/null
+++ b/tailwindcss/introduction/Tailwind Presentation-version2.md
@@ -0,0 +1,93 @@
+## Trend Talk (Practical Overview - Top Down Approach)
+
+![[Pasted image 20230924114808.png]]
+In this session want to get familiar with Tailwind, it's Pros and Cons, to see if we can use it to improve our developer experience and code maintainability, simple if it is good for us or not!
+
+## What exactly Tailwind is?
+
+**[wikipedia.org:](https://en.wikipedia.org/wiki/Tailwind_CSS)**
+
+> **Tailwind CSS** is an open source CSS framework CSS framework. The main feature of this library is that, unlike other CSS frameworks like Bootstrap, it does not provide a series of predefined classes for elements such as buttons or tables. Instead, it creates a list of "utility" CSS classes that can be used to style each element by mixing and matching
+
+## What are the Tailwind pros, and what makes it so popular?
+
+1. **Time saving.**
+ Once you learn the classes you can apply it very quickly definitely faster than writing CSS from scratch.
+2. **Fully customize**
+ With tailwind unlikely to Bootstrap or MUI, you have a huge array of different classes that are going to allow you to style these things exactly like you want. In Bootstrap or MUI or Foundation you're stuck with the particular classes they give you and if you want to change them, you need to go in there and modify your own CSS or overwrite them with inline styles
+3. **Flexibility and easy to change**
+ Imagen you have a `primary-button` class, and you want to add a new primary button, that is slightly darker then original one, you should add a new class called `button-primary-dark`, then if you want a lighter version you need to add a new class called `button-primary-light`, then if you have a large and small version for each of them, you have `button-primary-dark-lg, button-primary-dark-sm`, `button-primary-light-lg`, `button-primary-light-sm` and so on. it just start to get more complicated as you have all these different expectations. But with Tailwind all you do is you take that background color CSS class and you just change it to be darker or lighter, or make the font size bigger or smaller etc.
+4. **Design limitation**
+ Tailwind imposes upon you limitations and these limitations make it so that your designs are much more coherent and they look a lot better because instead of using certain amount of `px` to for example `padding-left: 7px; padding-right: 10px`, you can use `p1` or `p2`, and these are actual values. It's forcing you to specify exact sizing that fall within a design system
+5. **Entirely configurable**
+ You can pretty much change every single one of the preset default values in the design system to be what you want for example, you can set your custom `font-family` instead of default fonts.
+6. **Easy to learn**
+ Tailwind has a really great documentation. Furthermore Tailwind is nothing more than CSS.
+ 
+7. **Removes un-used css classes(minimal css size)**
+ 
+
+## Is Tailwind the best CSS framework in the world, aren't there any cons to it?
+
+1. **Too much classes in html**
+ 
+ Solution:
+ Inline/tailwind fold
+ 
+2. **Hard to maintainability when you don't use any of JavaScript frameworks.**
+ because if you have to copy your button styles which is like 8 or 9 different classes to every single button on your page, it's not good. Furthermore, if you want to change some style on these buttons, you should go through all of them and change them one by one. But if you're using one the JavaScript framework like React, you can just create a component for button and use it.
+3. **It's not suitable for how is not familiar with CSS**
+ in order to fully take advantage of Tailwind, you need to understand how CSS works at a core level because every CSS class in Tailwind is just like applying an individual CSS property and if you don't understand how CSS works and how the different properties work together you're not going to be able to use Tailwind to create a good design.
+
+## Testimony
+
+Maybe it would be better to take a look to testimony, to see who are using the Tailwind and suggesting it:-)
+
+Actually there are a lot of famous people or big companies are which using the tailwind, but to make it quick I just mentioned some of them which I like most:
+
+1. The first one is Kent C Dodds which is a famous person
+
+
+
+2. The second one is Fireship
+
+
+
+3. As the 3rd one let's instead of a third person check a very familiar project to you which is Our projects are mostly based on that:
+ Yeah Nuxt also uses Tailwind
+
+
+
+
+
+- https://openai.com/
+
+- https://www.shopify.com/
+
+- https://react.dev/
+
+- https://vercel.com/
+
+- https://nextjs.org/
+
+- ....
+
+There are a giant list of componies and projects which are adopting tailwind more and more per year as you can see on npmtrends the install per week raised from 1m to 6 m
+
+
+
+In addition to that, we can see Tailwind kept it's interest rate among the developers Higher than any other solutions through out the years:
+
+
+
+
+
+and also it's usage rate is second to bootstrap:
+
+
+
+
+
+Resources:
+https://www.youtube.com/watch?v=hdGsFpZ0J2E&t=202s&ab_channel=WebDevSimplified
+https://www.youtube.com/watch?v=CLkxRnRQtDE&ab_channel=TailwindLabs
diff --git a/tailwindcss/introduction/TailwindCSS Introduction.md b/tailwindcss/introduction/TailwindCSS Introduction.md
new file mode 100644
index 0000000..4dd5d0f
--- /dev/null
+++ b/tailwindcss/introduction/TailwindCSS Introduction.md
@@ -0,0 +1,1022 @@
+
+
+
+## Trend Talk (Practical Overview - Top Down Approach)
+
+
+
+
+In this session want to get familiar with Tailwind, it's Pros and Cons, to see if we can use it to improve our developer experience and code maintainability, simple if it is good for us or not!
+
+Maybe it would be better to start with testimony, to see who are using the Tailwind and suggesting it:-)
+Actually there are a lot of famous people or big companies are which using the tailwind, but to make it quick I just mentioned some of them which I like most:
+
+1. The first one is Kent C Dodds which is a famous person
+
+
+2. The second one is Fireship
+
+
+
+3. As the 3rd one let's instead of a third person check a very familiar project to you which is Our projects are mostly based on that:
+
+Yeah Nuxt also uses Tailwind
+
+
+
+
+
+
+
+- https://openai.com/
+- https://www.shopify.com/
+- https://react.dev/
+- https://vercel.com/
+- https://nextjs.org/
+- ....
+There are a giant list of componies and projects which are adopting tailwind more and more per year as you can see on npmtrends the install per week raised from 1m to 6 m
+
+
+In addition to that, we can see Tailwind kept it's interest rate among the developers Higher than any other solutions through out the years:
+
+
+
+
+and also it's usage rate is second to bootstrap:
+
+
+
+
+
+
+
+## Pros
+1. Tailwind is nothing more than CSS
+
+2. Control over your Theme
+3. Fast development experience
+4. Responsive out of the box design
+5. Removes un-used css classes(minimal css size)
+
+
+1. Eliminate time consuming process(endless) of picking good names for each class
+2.
+## Cons
+
+1. Too much classes in html
+
+
+Solution:
+Inline/tailwind fold
+
+
+
+
+
+
+## Technical Talk (Detailed-Bottom of the Surface-deep dive into reasons)
+
+
+show that undefned css variable in the project to the audiance
+
+# CSS Utility Classes and "Separation of Concerns"
+
+Over the last several years, the way I write CSS has transitioned from a very "semantic" approach to something much more like what is often called "functional CSS."
+
+Writing CSS this way can evoke [a pretty visceral reaction](https://twitter.com/mezzoblue/status/794419442272714752) from a lot of developers, so I'd like to explain how I got to this point and share some of the lessons and insights I've picked up along the way.
+
+## Phase 1: "Semantic" CSS
+
+One of the best practices you'll hear about when you're trying to learn how to CSS good is "separation of concerns."
+
+The idea is that your HTML should only contain information about your _content_, and all of your styling decisions should be made in your CSS.
+
+Take a look at this HTML:
+
+```html
+
+

+
+
Adam Wathan
+
+ Adam is a rad dude who likes TDD, Active Record, and garlic bread with cheese. He also hosts a decent podcast and has never had a really great haircut.
+
+
+ ```
+
+3. Use those classes as "hooks" in my CSS/Less/Sass to style my new markup:
+
+ ```css
+.author-bio {
+ background-color: white;
+ border: 1px solid hsl(0,0%,85%);
+ border-radius: 4px;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+ overflow: hidden;
+> img {
+ display: block;
+ width: 100%;
+ height: auto;
+ }
+> div {
+ padding: 1rem;
+> h2 {
+ font-size: 1.25rem;
+ color: rgba(0,0,0,0.8);
+ }
+> p {
+ font-size: 1rem;
+ color: rgba(0,0,0,0.75);
+ line-height: 1.5;
+ }
+ }
+}
+ ```
+
+Here's a demo of the final result:
+
+
+This approach intuitively made sense to me, and for a while this is how I wrote HTML and CSS.
+
+Eventually though, something started to feel a bit off.
+
+I had "separated my concerns", but there was still a very obvious coupling between my CSS and my HTML. Most of the time my CSS was like a mirror for my markup; perfectly reflecting my HTML structure with nested CSS selectors.
+
+**My markup wasn't concerned with styling decisions, but my CSS was very concerned with my markup structure.**
+
+Maybe my concerns weren't so separated after all.
+
+## Phase 2: Decoupling styles from structure
+
+After looking around for a solution to this coupling, I started finding more and more recommendations towards adding more classes to your markup so you could target them directly; keeping selector specificity low and making your CSS less dependent on your particular DOM structure.
+
+The most well-known methodology that advocates this idea is [Block Element Modifer](http://getbem.com/introduction/), or _BEM_ for short.
+
+Taking a BEM-like approach, the markup for our author bio might look more like this:
+
+```html
+
+

+
+
Adam Wathan
+
+ Adam is a rad dude who likes TDD, Active Record, and garlic bread with cheese. He also hosts a decent podcast and has never had a really great haircut.
+
+
+
+```
+
+...and our CSS would look like this:
+
+```css
+.author-bio {
+ background-color: white;
+ border: 1px solid hsl(0,0%,85%);
+ border-radius: 4px;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+ overflow: hidden;
+}
+.author-bio__image {
+ display: block;
+ width: 100%;
+ height: auto;
+}
+.author-bio__content {
+ padding: 1rem;
+}
+.author-bio__name {
+ font-size: 1.25rem;
+ color: rgba(0,0,0,0.8);
+}
+.author-bio__body {
+ font-size: 1rem;
+ color: rgba(0,0,0,0.75);
+ line-height: 1.5;
+}
+```
+
+_[View on CodePen](https://codepen.io/adamwathan/pen/ZJepYj)_
+
+This felt like a huge improvement to me. My markup was still "semantic" and didn't contain any styling decisions, and now my CSS felt decoupled from my markup structure, with the added bonus of avoiding unnecessary selector specificity.
+
+But then I ran into a dilemma.
+
+## Dealing with similar components
+
+Say I needed to add a new feature to the site: displaying a preview of an article in a card layout.
+
+Say this article preview card had a full bleed image on the top, a padded content section below, a bold title, and some smaller body text.
+
+Say it looked exactly like an author bio.
+
+
+What's the best way to handle this while still separating our concerns?
+
+We can't apply our `.author-bio` classes to our article preview; that wouldn't be semantic. So we definitely need to make `.article-preview` its own component.
+
+Here's what our markup could look like:
+
+```html
+
+

+
+
Stubbing Eloquent Relations for Faster Tests
+
+ In this quick blog post and screencast, I share a trick I use to speed up tests that use Eloquent relationships but don't really depend on database functionality.
+
+
+
+```
+
+But how should we handle the CSS?
+
+### Option 1: Duplicate the styles
+
+One approach would be to straight up duplicate our `.author-bio` styles and rename the classes:
+
+```css
+.article-preview {
+ background-color: white;
+ border: 1px solid hsl(0,0%,85%);
+ border-radius: 4px;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+ overflow: hidden;
+}
+.article-preview__image {
+ display: block;
+ width: 100%;
+ height: auto;
+}
+.article-preview__content {
+ padding: 1rem;
+}
+.article-preview__title {
+ font-size: 1.25rem;
+ color: rgba(0,0,0,0.8);
+}
+.article-preview__body {
+ font-size: 1rem;
+ color: rgba(0,0,0,0.75);
+ line-height: 1.5;
+}
+```
+
+This works but of course it's not very _DRY_. It also makes it a bit too easy for these components to differ in slightly different ways (maybe a different padding, or font color) which can lead to an inconsistent looking design.
+
+### Option 2: `@extend` the author bio component
+
+Another approach is to use the `@extend` feature of your preprocessor of choice; letting you piggy-back off of the styles already defined in our `.author-bio` component:
+
+```css
+.article-preview {
+ @extend .author-bio;
+}
+.article-preview__image {
+ @extend .author-bio__image;
+}
+.article-preview__content {
+ @extend .author-bio__content;
+}
+.article-preview__title {
+ @extend .author-bio__name;
+}
+.article-preview__body {
+ @extend .author-bio__body;
+}
+```
+
+_[View on CodePen](https://codepen.io/adamwathan/pen/ZJepLq)_
+
+Using `@extend` at all is [generally not recommended](https://csswizardry.com/2014/11/when-to-use-extend-when-to-use-a-mixin/), but that aside, this feels like it solves our problem right?
+
+We've removed the duplication in our CSS, and our markup is still free of styling decisions.
+
+But let's examine one more option...
+
+### Option 3: Create a content-agnostic component
+
+Our `.author-bio` and `.article-preview` components have nothing in common from a "semantic" perspective. One is the bio of an author, the other is a preview of an article.
+
+But as we've already seen, they have a _lot_ in common from a design perspective.
+
+So if we wanted to, we could create a new component named after what they _do_ have in common, and reuse that component for both types of content.
+
+Let's call it a `.media-card`.
+
+Here's the CSS:
+
+```css
+.media-card {
+ background-color: white;
+ border: 1px solid hsl(0,0%,85%);
+ border-radius: 4px;
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
+ overflow: hidden;
+}
+.media-card__image {
+ display: block;
+ width: 100%;
+ height: auto;
+}
+.media-card__content {
+ padding: 1rem;
+}
+.media-card__title {
+ font-size: 1.25rem;
+ color: rgba(0,0,0,0.8);
+}
+.media-card__body {
+ font-size: 1rem;
+ color: rgba(0,0,0,0.75);
+ line-height: 1.5;
+}
+```
+
+...here's what the markup for our author bio would look like:
+
+```html
+
+```
+
+...and here's the markup for our article preview:
+
+```html
+
+```
+
+This approach also removes the duplication from our CSS, but aren't we "mixing concerns" now?
+
+Our markup all of a sudden knows that we want both of these pieces of content to be styled as media cards. What if we wanted to change how the author bio looked without changing how the article preview looks?
+
+Before, we could just open up our stylesheet and choose new styles for either of the two components. Now we'd need to edit the HTML! _Blasphemy!_
+
+But let's think about the flip side for a minute.
+
+**What if we needed to add _a new type of content_ that also needed the same styling?**
+
+Using a "semantic" approach, we'd need to write the new HTML, add some content-specific classes as styling "hooks", open up our stylesheet, create a new CSS component for the new content type, and apply the shared styles, either through duplication or using `@extend` or a mixin.
+
+Using our content-agnostic `.media-card` class, all we'd need to write is the new HTML; we wouldn't have to open the stylesheet at all.
+
+If we're really "mixing concerns", shouldn't we need to make changes in multiple places?
+
+## "Separation of concerns" is a straw man
+
+When you think about the relationship between HTML and CSS in terms of "separation of concerns", it's very black and white.
+
+You either have separation of concerns _(good!)_, or you don't _(bad!)_.
+
+This is not the right way to think about HTML and CSS.
+
+Instead, **think about _dependency direction._**
+
+There are two ways you can write HTML and CSS:
+
+1. ~~_"Separation of Concerns"_~~**CSS that depends on HTML.**
+
+ Naming your classes based on your content (like `.author-bio`) treats your HTML as a dependency of your CSS.
+
+ The HTML is independent; it doesn't care how you make it look, it just exposes _hooks_ like `.author-bio` that _the HTML controls._
+
+ Your CSS on the other hand is not independent; it needs to know what classes your HTML has decided to expose, and it needs to target those classes to style the HTML.
+
+ In this model, your HTML is restyleable, but your CSS is not reusable.
+
+2. ~~_"Mixing Concerns"_~~**HTML that depends on CSS.**
+
+ Naming your classes in a content-agnostic way after the repeating patterns in your UI (like `.media-card`) treats your CSS as a dependency of your HTML.
+
+ The CSS is independent; it doesn't care what content it's being applied to, it just exposes a set of building blocks that you can apply to your markup.
+
+ Your HTML is not independent; it's making use of classes that have been provided by the CSS, and it needs to know what classes exist so that it combine them however it needs to to achieve the desired design.
+
+ In this model, your CSS is reusable, but your HTML is not restyleable.
+
+
+CSS Zen Garden takes the first approach, while UI frameworks like [Bootstrap](http://v4-alpha.getbootstrap.com/) or [Bulma](http://bulma.io/) take the second approach.
+
+Neither is inherently "wrong"; it's just a decision made based on what's more important to you in a specific context.
+
+For the project you're working on, what would be more valuable: restyleable HTML, or reusable CSS?
+
+### Choosing reusability
+
+The turning point for me came when I read Nicolas Gallagher's [About HTML semantics and front-end architecture](http://nicolasgallagher.com/about-html-semantics-front-end-architecture/).
+
+I won't reiterate all of his points here, but needless to say I came away from that blog post fully convinced that optimizing for reusable CSS was going to be the right choice for the sorts of projects I work on.
+
+## Phase 3: Content-agnostic CSS components
+
+My goal at this point was to _explicitly avoid_ creating classes that were based on my content, instead trying to name everything in a way that was as reusable as possible.
+
+That resulted in class names like:
+
+- `.card`
+- `.btn`, `.btn--primary`, `.btn--secondary`
+- `.badge`
+- `.card-list`, `.card-list-item`
+- `.img--round`
+- `.modal-form`, `.modal-form-section`
+
+...and so on and so forth.
+
+I noticed something else when I started focusing on creating reusable classes:
+
+**The more a component does, or the more specific a component is, the harder it is to reuse.**
+
+Here's an intuitive example.
+
+Say we were building a form, with a few form sections, and a submit button at the bottom.
+
+If we thought of all of the form contents as part of a `.stacked-form` component, we might give the submit button a class like `.stacked-form__button`:
+
+```html
+
+```
+
+But maybe there's another button on our site that's _not_ part of a form that we need to style the same way.
+
+Using the `.stacked-form__button` class on that button wouldn't make a lot of sense; it's not part of a stacked form.
+
+Both of these buttons are primary actions on their respective pages though, so what if we named the button based on what the components have in common and called it `.btn--primary`, removing the `.stacked-form__` prefix completely?
+
+```diff
+
+```
+
+Now say we wanted this stacked form to look like it was in a floated card.
+
+One approach would be to create a modifier and apply it to this form:
+
+```diff
+-
+```
+
+But if we already have a `.card` class, why don't we _compose_ this new UI using our existing card and stacked form?
+
+```diff
++
+
++
+```
+
+By taking this approach, we have a `.card` that can be a home for any content, and an unopinionated `.stacked-form` that can be used inside of any container.
+
+We're getting more reuse out of our components, and **we didn't have to write any new CSS.**
+
+## Composition over subcomponents
+
+Say we needed to add another button to the bottom of our stacked form, and we wanted it to be spaced out a little from the existing button:
+
+```html
+
+```
+
+One approach would be to create a new subcomponent, like `.stacked-form__footer`, add an additional class to each button like `.stacked-form__footer-item`, and use descendant selectors to add some margin:
+
+```diff
+