<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های مهدی نامور</title>
        <link>https://virgool.io/feed/@ilxanlar</link>
        <description>برنامه‌نویس جاوااسکریپت و عاشق ری‌اکت، در حال حاضر در Today&#039;s Crypto کار میکنم!</description>
        <language>fa</language>
        <pubDate>2026-06-07 15:31:11</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/2248/avatar/RFGTw5.png?height=120&amp;width=120</url>
            <title>مهدی نامور</title>
            <link>https://virgool.io/@ilxanlar</link>
        </image>

                    <item>
                <title>آشنایی با styled-components</title>
                <link>https://virgool.io/JavaScript8/what-are-styled-components-jyxe2piklax6</link>
                <description>فرض کنید همه‌ی style های موردنیاز برای یک کامپوننت داخل خود آن تعریف شده باشد، به‌به!import React from &#039;react&#039;;
import ReactDOM from &#039;react-dom&#039;;
import styled from &#039;styled-components&#039;;

const Button = styled.button`
    background-color: #00BFFF;
    border: 1px solid transparent;
    color: #FFF;
    font-size: 16px;
    padding: 10px 15px;
`;

ReactDOM.render(
    &lt;Button&gt;Submit&lt;/Button&gt;,
    document.getElementById(&#039;root&#039;)
);توجه کنید که style باید داخل Template literals تعریف شود &#x60; &#x60;دیگر نیازی نیست نگران className ها باشید، البته این بدین معنا نیست که نمی‌توانید از className استفاده کنید:&lt;Button className=&quot;submit-button&quot;&gt;
    Submit
&lt;/Button&gt;مهم‌تر اینکه شما این style ها را با جاوااسکریپت می‌نویسید:import styled from &#039;styled-components&#039;; 

const backgroundColor = &#039;#00BFFF&#039;;

const Button = styled.button`
    background-color: ${backgroundColor};
    border: 1px solid transparent;
    color: #FFF;
    font-size: 16px;
    padding: 10px 15px;
`;وقتی حرف از کامپوننت می‌شود نام prop به میان می‌آید. در مثال بالا، backgroundColor می‌تواند یک function باشد که prop های کامپوننت Button را به عنوان پارامتر ورودی دریافت می‌کند:import PropTypes from &#039;prop-types&#039;;
import styled from &#039;styled-components&#039;;

function backgroundColor(props) {
    if (props.primary) {
        return &#039;#00BFFF&#039;;
    } else {
        return &#039;#353535&#039;;
    }
}

const Button = styled.button`
    background-color: ${backgroundColor};
    border: 1px solid transparent;
    color: #FFF;
    font-size: 16px;
    padding: 10px 15px;
`;

Button.propTypes = {
    primary: PropTypes.bool
};

ReactDOM.render(
    &lt;div&gt;
        &lt;Button primary&gt;Submit&lt;/Button&gt;
        &lt;Button&gt;Cancel&lt;/Button&gt;
    &lt;/div&gt;,
    document.getElementById(&#039;root&#039;)
);برای کامپوننت‌های تودرتو می‌توانید style های خود را مثل SCSS بنویسید:const Button = styled.button`...`;

const Wrapper = styled.div`
    margin: auto 20px;
    max-width: 600px;

    ${Button} {
        display: inline-block;
        width: 100%;
    }
`;

ReactDOM.render(
    &lt;Wrapper&gt;
        &lt;Button&gt;
            Create my Account
        &lt;/Button&gt;
    &lt;/Wrapper&gt;,
    document.getElementById(&#039;root&#039;)
);هم‌چنین می‌توانید styled-components را extend کنید:import React from &#039;react&#039;;
import styled from &#039;styled-components&#039;;

const DefaultButton = styled.button`
    background-color: #353535;
    border: 1px solid transparent;
    color: #FFF;
    font-size: 16px;
    padding: 10px 15px;
`;

const PrimaryButton = DefaultButton.extend`
    background-color: #00BFFF;
`;بسیاری از ویژگی‌های styled-components ناگفته باقی ماند ولی در نوشته‌های بعدی درباره آنها صحبت خواهیم کرد.</description>
                <category>مهدی نامور</category>
                <author>مهدی نامور</author>
                <pubDate>Wed, 10 Jan 2018 00:00:21 +0330</pubDate>
            </item>
            </channel>
</rss>