Magento 2 테마-처음부터 시작


27

여러분 중 일부는 아마도 Magento 1의 테마부터 처음부터 테마에 관한 주제를 읽었을 것입니다. 테마-처음부터 시작

Magento 2의 테마를 처음부터 개발하는 가장 좋은 방법은 무엇입니까?

  • 네이티브 luma또는 blank테마를 사용하여 빌드 합니까? 아니면 다른 것?
  • 테마를 개발하는 데 도움이되는 확장 기능을 사용합니까?
  • 테마를 처음부터 개발할 때 따라야 할 단계는 무엇입니까?

나는 내 대답에 링크를 제공하고 있습니다 .Magento 2.0의 프론트 엔드 아키텍처와 개발에 대해 알게 될 것입니다.
Asheem Patro

Magento docs devdocs.magento.com/guides/v2.1/frontend-dev-guide/themes/… 의 단계에 따라 프론트 엔드에 대한 테마를 작성하십시오.
Rishabh Rk Rai

답변:


45

TL : DR

기본 루마 또는 공백 테마를 사용하여 빌드합니까? 아니면 다른 것?

부모 테마를 선언하는 것은 선택 사항입니다. 부모를 선언하지 않으면 XML 및 템플릿 파일은 제공하지만 스타일은 제공하지 않는 모듈 (예 : Magento_Catalog)로 대체됩니다.

테마를 개발하는 데 도움이되는 확장 기능을 사용합니까?

SCSS 및 GULP 작업을 선호함에 따라 FrontoolsSCSS blank 테마를 사용 합니다. 기본 Grunt / LESS worflow를 처리 할 때 발생하는 많은 스트레스를 제거합니다.

테마를 처음부터 개발할 때 따라야 할 단계는 무엇입니까?

  1. 테마 선언
  2. 부모 테마 CSS 제거 (필요한 경우)
  3. 나만의 CSS / LESS / SCSS 추가

내 개인적인 견해는 당신이 이것을 정확히 당신이 원하는 것에 맞게 조정할 수 있기 때문에 처음부터 자신의 '빈 테마'를 만드는 것이 가장 좋습니다.

이것은 처음부터 테마를 만드는 방법입니다. 공급 업체 및 테마 이름으로 NewStore / default를 사용했습니다.

이제 더 자세한 답변을 얻으려면 ...

테마 만들기 (공식 문서에 따라)

공식 문서에 따라 테마 만들기

선택적으로 부모 선언

app/design/frontend/NewStore/default/theme.xml당신 안에서 부모 테마를 선언할지 여부를 선택할 수 있습니다.이 예제에서는 3 행을 생략 <parent>Vendor/theme</parent>했으므로 부모 테마가 없습니다 . 즉, 모든 템플릿 / 레이아웃 파일은 Blank 또는 Luma가 아닌 모듈 자체에서 제공되며 Blank 테마에 추가되므로 테마 스타일이 없습니다.

내 theme.xml은 다음과 같습니다.

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>NewStore default</title>
    <media>
        <preview_image>media/preview.jpg</preview_image>
    </media>
</theme>

스타일을 제거하고 (부모 테마를 설정 한 경우) 고유 한 CSS를 추가하십시오.

blank 또는 Luma를 부모로 설정하면 CSS 파일이로드되지 않도록해야합니다. 이를 위해 app/design/frontend/NewStore/default/Magento_Theme/layout/default_head_blocks.xml다음 XML을 작성 하고 추가하십시오.

<?xml version="1.0" ?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>

        <!-- Remove blank/luma theme styling if you declared a parent -->
        <remove src="css/styles-m.css" />
        <remove src="css/styles-l.css" />
        <remove src="css/print.css" />

        <!-- Add your own CSS files -->
        <css src="css/styles.css" />
    </head>
</page>

이 제거합니다은 styles-m.css, styles-l.cssprint.css빈 테마 추가. 또한 styles.css를 CSS의 기반으로 추가합니다.

부모를 지정하지 않은 경우 <remove />위 코드에서 3 개의 태그를 제거 할 수 있습니다 .

나만의 CSS 추가

이제 테마를 꾸밀 수는 있지만 원하는 것은 LESS보다는 Sass의 팬이므로이 파일을 추가했습니다. app/design/frontend/NewStore/default/web/css/styles.scss

여기에서 배경색을 변경 하여이 작동을 증명하는 것이 이상적입니다. 이상적으로는 다른 Sass / Less 파일을 가져 오기 위해이 파일 만 사용하는 것이 좋습니다.

결과

내가 방금 한 결과는 스타일이없는 테마입니다 (아름다운 녹색 배경 제외). 마 젠토 (일부 작업하기 어려운) 스타일링으로 작업하지 않고 테마를 꾸밀 수 있습니다.

여기에 이미지 설명을 입력하십시오

  • SCSS로 작업하기를 하고 처음부터 테마를 만들 시간이 없다면 Snowool Apps에서 FrontoolsSCSS blank 테마를 모두 사용하는 것이 좋습니다 .

  • Magento의 프론트 엔드 코드를 사용하는 데있어 가장 실망스러운 점은 스타일이 얼마나 구체적인지에 대한 것입니다.이를 피하기 위해 자신의 스타일을 작성할 때 BEM 이름 지정 규칙을 사용하는 것이 좋습니다 .

  • 또한 Luma / Blank 작업에 익숙한 개발자가 처음부터 제작 된 테마로 작업했다면 예상과 다르게 작동하는 것을 알 수 있습니다.


에 정의 된 상위 테마없이 안내를 사용하여 빈 테마를 만들었습니다 theme.xml. 그러나 프런트 엔드에는 여전히 모든 종류의 스타일이 있습니다. Magento 설치가 developer모드에 있으며 모든 캐시가 지워졌습니다. 이 모든 스타일이 어디에서 왔는지 모르겠습니다. 아이디어가 있습니까?
fritzmg

확장 프로그램 / 플러그인이 설치되어 있습니까? 설치된 경우 니스와 같이 URL 뒤에 물음표와 임의의 문자열을 추가하지 않도록 배제 할 수 있습니다.?=123
Ben Crook

그래, 나는 바니시 (또는 비슷한)를 배제했다. 확장 프로그램이나 플러그인이 설치되어 있지 않습니다.
fritzmg December

전체 테마 스타일입니까, 아니면 일부입니까? 사이트와 코드베이스를 보지 않고 말하기가 어렵습니다. 새로운 질문을하고 세부 사항을 게시 하시겠습니까? 당신이 나를 태그하면 내가 그것을 해결할 수 있는지 볼 수 있습니다.
벤 크룩

내가 볼 수있는 한 전체 테마입니다. 내 테마의 CSS 파일도 포함되어 있습니다. 네, 아마 이것에 대한 새로운 질문을 만드는 것이 좋습니다 :)
fritzmg

8

Magento 2.0에서 테마를 시작하기위한 많은 튜토리얼이 있습니다. magento 2.0의 테마 개발에 대한 좋은 지식을 얻을 수있는 비디오 링크와 일반 링크를 제공하고 있습니다. 비디오를 보시려면 여기를 클릭하십시오

이 링크에서 참조하십시오

http://devdocs.magento.com/guides/v2.0/frontend-dev-guide/themes/theme-create.html

http://blog.magestore.com/how-to-create-custom-theme-on-magento-2-part-1/

이 링크에서 magento 2.0의 프론트 엔드 아키텍처에 대해 배울 것입니다

http://inchoo.net/magento-2/frontend-theme-architecture/

이 두 링크를 확인하십시오

http://www.webmull.com/magento-2-create-new-custom-theme/

http://www.slideshare.net/Magestorecom/how-to-create-theme-in-magento-2-part-1


5

나는 공백에서 상속 받았지만 훨씬 덜 복잡한 CSS 구조를 가진 더 가벼운 기본 테마를 만들려고 노력하고 있습니다.

Magento는 2015 년에 나와서 자신의 마케팅 및 데모 목적으로 의도하지 않은 변경을 할 수있는 권리를 보유하므로 루마에서 상속하는 것을 권장하지 않는다는 점에 주목할 가치가 있습니다 . 그들은 나중에 상속을 허용하는 것이 그들의 목표 라고 말함으로써 그 진술을 개정했다 .


3

테마 개발을 시작하는 가장 좋은 방법은 luma또는 에서 상속을받는 것 blank입니다. 그 이유는 반응 형 (즉, 다중 해상도 친화적)으로 제작 되었기 때문입니다. 또한 다른 템플리트 파일 및 JS / CSS 정의를 작성하는 데 필요한 작업량도 줄어 듭니다. 당신이해야 할 일은 단지 당신이 원하는 것을 사용자 정의하고자하는 부분들보다 우선합니다. 테마를 개발하는 방법에 대한 다른 지침은 아래 링크를 참조하십시오.

마 젠토 문서 링크 :


템플릿 파일은 이제 빈 / 루마가 아닌 모듈에서 제공되므로 스타일 / 변경이 필요하지 않은 경우 해당 파일을 정적으로 무시할 수 있습니다. 예를 들어 app / design / frontend / Magento / blank / Magento_Catalog를 보면 하나의 요소 만 이동하고 스타일을 추가하기 만하면 템플릿이 app / code / Magento / Catalog / view / frontend / templates 및 app / code / Magento / Catalog / view / base / templates
Ben Crook
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.