# Używanie Bootstrap

## O Bootstrap <a href="#uzywaniebootstrap-obootstrap" id="uzywaniebootstrap-obootstrap"></a>

Bootstrap jest "elegancki, intuicyjny i mobilnie wydajny dla konstrukcji front-end i dla szybszego i łatwiejszego tworzenia stron " To narzędzie sprawia, że o wiele ławiej buduje się responsywne strony – to znaczy takie które adaptują się do rozmiaru ekranu, od telefonu komórkowego do dużego telewizora.&#x20;

Konstrukcja Bootstrap składa się z:

* Z konwencji kodu HTML i nazewnictwa klas CSS.
* Na bazie pliku CSS (używając formatu LESS albo Sass) zbudowany ze zbioru zmiennych.
* JavaScript dla częściej spotykanych funkcji.&#x20;

Bootstrap używa zupełnie nowego sposób pracy nad stroną internetową, która będzie naprawdę wykorzytywana w całych nadchodzący projektach – nawet tych z poza PrestaShop! Zalecamy, aby zanurzyć się w to:

* Oficjalna strona [official Bootstrap website](http://getbootstrap.com/) ma wiele punktów informacyjnych, zawiera [Getting started guide](http://getbootstrap.com/getting-started/) (w tym kompilacje kodu [overview of how it uses CSS](http://getbootstrap.com/css/), oraz wyjaśnienie [its use of JavaScript](http://getbootstrap.com/javascript/).
* Sitepoint ma kilka darmowych artykułów i tutoriali : [Understanding Twitter Bootstrap 3](http://www.sitepoint.com/understanding-twitter-bootstrap-3/), [Building Responsive Websites Using Twitter BootStrap](http://www.sitepoint.com/building-responsive-websites-using-twitter-bootstrap/), albo [Twitter Bootstrap Tutorial – Handling Complex Designs](http://www.sitepoint.com/twitter-bootstrap-tutorial-handling-complex-designs/).

## Ogólne informacje techniczne <a href="#uzywaniebootstrap-ogolneinformacjetechniczne" id="uzywaniebootstrap-ogolneinformacjetechniczne"></a>

Bootstrap wykorzystuje pewne specyficzne elementy HTML, które sprawiają, że jest to wymóg, aby korzystać z HTML5. Należy uważać, aby użyć właściwego doctype HTML5 dla wszytkich plików szablonów! \
Podobnie, CSS3 jest wykorzytsywany do wielu właściwości CSS.

```
<!DOCTYPE html>
<html lang="fr">
...
</html>
```

Bootstrap 3 jest przeznaczony do przyjaznych mobilnych stron, od początku tworzenia projektu, zamiast dodawania opcjonalnych styli mobilnych do projektu, te style są wbudowane w rdzeń projektu upewnij się, że dobrze się wyświetla na wszystkich urządzeniach.\
W celu upewnienia się, że projekt działa dobrze i że touch zoom działą zgodnie z oczekiwaniami, należy dodać `viewport` meta tag do elementu twojego szablonu `head`:

```
<meta name="viewport" content="width=device-width, initial-scale=1.0">
```

Bootstrap sprawia, że łatwiej jest zbudować projekt responsywny, i  możesz użyć małego triku żeby także twoje obrazy również były responsywne, użyj do tego klasę Boostrapa `img-responsive` w klasie obrazu.Ta klasa pozwala Twoim obrazom na użycie  `max-width: 100%;` i `height: auto;` w celu dostosowania się do elementu nadrzędnego.&#x20;

```
<img src="http://example.com/img/image.jpg" class="img-responsive" alt="Description of the image">
```

## Płynny system sieci <a href="#uzywaniebootstrap-plynnysystemsieci" id="uzywaniebootstrap-plynnysystemsieci"></a>

Bootstrap używa 12-kolumnowy system sieci, dzięki której można zbudować fluid layout. Można użyć zapytania do mediów, aby wskazać punkty krytyczne w systemie sieciowym, dzięki czemu można go skalować w górę i w dół względem liczby kolumn w zależności od rozmiaru ekranu (od 480px,szerokości małych telefonów), Więc nie jest wymagane żadne zapytanie o media. Większe rozmiary ekranu są zarządane za pomocą nastepujących pytań:

```
/* Small devices (tablets, 768px and up) */
@media (min-width: @screen-sm) { ... }

/* Medium devices (desktops, 992px and up) */
@media (min-width: @screen-md) { ... }

/* Large devices (large desktops, 1200px and up) */
@media (min-width: @screen-lg) { ... }
```

Bootstrap używa przedrostków klasy urządzeń do odróżniania ich rozmiarów ekranu:

* `.col-xs-...`: ekstremalnie mały dla telefonów (< 768px)
* `.col-sm-...`: mały, dla tabletów (≥768 px)
* `.col-md-...`: średni, dla pulpitów (≥992 px)
* `.col-lg-...`: duży, dla dużych pulpitów i telewizorów (≥1200 px)

Na przykład:

* `col-xs-3`: `3` kolumny na telefonach.
* `col-md-4`: 4 kolumny na pulpitach.

Dla każdego użądzenia, Bootstrap  również zapewnia klasy CSS, co pozwala na zmianę położenia kolumny:

* `col-`*`size`*`-push-`*`col`*: przenieść kolumnę do lewa.
* `col-`*`size`*-pull-*`col`*: przenieść kolumnę do prawa.
* `col-`*`size`*-offset-*`col`* : kolumna pozycji według drugiej kolumny.

Na przykład:

* `col-md-push-2`: Na pulpitach, przesuń tę kolumnę przez dwie kolumny w lewo.

## Bootstrap & Sass: Używanie zmiennych i wstawek <a href="#uzywaniebootstrap-bootstrap-and-sass-uzywaniezmiennychiwstawek" id="uzywaniebootstrap-bootstrap-and-sass-uzywaniezmiennychiwstawek"></a>

### Zmienne <a href="#uzywaniebootstrap-zmienne" id="uzywaniebootstrap-zmienne"></a>

Możesz konfigurować Bootstrap poprzez edytowanie zmiennych w pliku `_variables.scss` . Na przykład:

```
@grid-columns: 12;
@grid-gutter-width: 30px;
@grid-float-breakpoint: 768px;
```

### Wstawki <a href="#uzywaniebootstrap-wstawki" id="uzywaniebootstrap-wstawki"></a>

Wstawka pozwala tworzyć grupy deklaracji CSS, które chcesz ponownie użyć na całęj swojej stronie. Na przykład:

```
@mixin border-radius($radius) {
  -webkit-border-radius: $radius;
     -moz-border-radius: $radius;
      -ms-border-radius: $radius;
          border-radius: $radius;
}

.box { @include border-radius(10px); }
```

Można zastosować zdefiniowane wstawki nowego stylu. Na przykład:

```
.wrapper {
  .make-row();
}
.content-main {
  .make-lg-column(8);
}
.content-secondary {
  .make-lg-column(3);
  .make-lg-column-offset(1);
}
```

...z następującego kodu HTML:

```
<div class="wrapper">
  <div class="content-main">...</div>
  <div class="content-secondary">...</div>
</div>
```

## Klasy Bootstrap <a href="#uzywaniebootstrap-klasybootstrap" id="uzywaniebootstrap-klasybootstrap"></a>

Bootstrap ma wiele domyślnych klas CSS, i jednocześnie PrestaShop definiuje kilka kolejnyc, które pomoga Ci zbudować spójną konstrukcje.

### Klasy Pomocnicze <a href="#uzywaniebootstrap-klasypomocnicze" id="uzywaniebootstrap-klasypomocnicze"></a>

Klasy te są używane kiedy projektuje się element który wykorzystuje jedną z PrestaShop [Klasy pomocnicze](http://doc.prestashop.com).

* `pull-left`: Dla lewego pływaka.
* `pull-right`: Dla prawego pływaka.
* `text-muted`: Dla szarego tekstu.
* `clearfix`: Aby zapobiec nadmiernej wielkości pływających bloków.
* `close`: Aby utworzyć przycisk zamykania (x).
* `caret`: Aby wskazać menu rozwijane&#x20;
* `center-block`: Aby wyśrodkować element.
* `show` i `hidden`: Aby pokazać/schować element.

### Klasy responsywne <a href="#uzywaniebootstrap-klasyresponsywne" id="uzywaniebootstrap-klasyresponsywne"></a>

Te klasy są użyteczne aby pokazać/ukryć element w zależności od urządzenia.

* `visible-xs` / `hidden-xs`
* `visible-sm` / `hidden-sm`
* `visible-md` / `hidden-md`
* `visible-lg` / `hidden-lg`
* `visible-print` / `hidden-print`

### Nawigacja, zakładki i menu <a href="#uzywaniebootstrap-nawigacja-zakladkiimenu" id="uzywaniebootstrap-nawigacja-zakladkiimenu"></a>

Główne klasy dla tego kontekstu są:

* `navbar` i `navbar-inner`: Klasa pojemnika na pasku nawigacyjnym.
* `navbar-fixed-top`: Aby przymocować pasek nawigacyjny na górze strony.
* `brand`: Dla strony tytułu/nazwy sklepu.
* `nav`, `nav-tabs` i `nav-pills`: Na kartach nawigacji.
* `btn` i `btn-navba`: Dla przycisków.
* `nav-collapse`, `collapse`, `data-toggle`, `data-target`: Do automatycznego ukrycia/pokazania zawartości.
* `icon-th-list`: Do wyświetlania ikon (tylko na małych ekranach: `th`).

Oto przykład nawigacji z menu z prawej strony:

```
<div class="navbar navbar-fixed-top">
  <div class="navbar-inner">
    <div class="container">
      <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
        <span class="icon-th-list"></span></a>
      <a href="#" class="brand">SiteTitle</a>
      <div class="nav-collapse collapse">
        <ul class="nav pull-right">
          <li class="active"><a href="#">Home</a></li>
          <li><a href="#">About Us</a></li>
          <li><a href="#">Contact Us</a></li>
        </ul>
      </div>
    </div>
  </div>
</div>
```

Oto przykład zakładki menu:

```
<ul class="nav nav-tabs">
  <li class="active"><a href="#">Home</a></li>
  <li><a href="#">Profile</a></li>
  <li class="dropdown">
    <a href="#" data-toggle="dropdown" class="dropdown-toggle">Messages <b class="caret"></b></a>
    <ul class="dropdown-menu">
      <li><a href="#">Inbox</a></li>
      <li><a href="#">Drafts</a></li>
      <li class="divider"></li>
      <li><a class="disabled" href="#">Trash</a></li>
    </ul>
  </li>
</ul>
```

### Tabele <a href="#uzywaniebootstrap-tabele" id="uzywaniebootstrap-tabele"></a>

Główne klasy dla tabel:

* `table`, `table-responsive`: Aby utworzyć tabelę i włączyć przewijanie na mniejszych ekranach..
* `table-striped`: Aby dodać zmienne tło w wierszach.
* `table-bordered`: Aby dodać obramowanie.
* `table-hover`: Aby dodać tło do wiersza, gdy mysz go okrąża
* `table-condensed`: Aby podzielić cellpadding na dwa (sprawia, że tabela staję bardziej zwarta).
* `success`, `warning`, `danger`, etc.: Aby zmienić kolor tła wiersza lub komórki.

Przykadowe użycie::

```
<table class="table table-condensed table-hover">
<thead>
  <tr>
    <th>First Name</th>
    <th>Last Name</th>
    <th>Email</th>
  </tr>
</thead>
<tbody>
  <tr class="warning">
    <td>John</td>
    <td>Carter</td>
    <td>johncarter@mail.com</td>
  </tr>
  <tr>
    <td>Peter</td>
    <td>Parker</td>
    <td>peterparker@mail.com</td>
  </tr>
  <tr>
    <td>John</td>
    <td>Rambo</td>
    <td>johnrambo@mail.com</td>
    </tr>
  </tbody>
</table>
```

### Panele <a href="#uzywaniebootstrap-panele" id="uzywaniebootstrap-panele"></a>

Main classes for this context:

* `panel`, `panel-body`: zdefinowanie panelu.
* `panel-default`, `panel-primary`, `panel-success`, `panel-info`, `panel-warning` i `panel-danger`: W celu przystosowania układu do panelu&#x20;
* `panel-heading` i `panel-title`: W celu dodania nagłówku i tytułu w panelu.
* `panel-footer`: Aby dodać stopkę do panelu&#x20;

Przykładowe wykorzystanie:

```
<div class="panel panel-default">
  <div class="panel-heading">
    <h1 class="panel-title">Panel Title</h1>
  </div>
  <div class="panel-body">
      This is the content of the panel.
  </div>
  <div class="panel-footer clearfix">
    <div class="pull-right">
      <a href="#" class="btn btn-default">Go Back</a>
    </div>
  </div>
</div>
```

### Obrazy <a href="#uzywaniebootstrap-obrazy" id="uzywaniebootstrap-obrazy"></a>

* `img-rounded`: Do wyświetlania obrazu z zaokrąglonymi granicami.
* `img-circle`: Aby wyświetlić obraz w okręgu .
* `img-thumbnail`: Aby poradzić sobie z miniaturami

Przykadowe użycie:

```
<div class="container">
  <div class="row">
    <div class="col-xs-6">
      <div class="thumbnail">
        <img src="avatar.jpg" alt="Sample Image">
        <div class="caption">
          <h3>label</h3><p>description...</p>
        </div>
      </div>
    </div>
    <div class="col-xs-6">
      <div class="thumbnail">
        <img src="avatar.jpg" alt="Sample Image">
          <div class="caption">
            <h3>label</h3><p>description...</p>
          </div>
      </div>
    </div>
  </div>
</div>
```

### Listy <a href="#uzywaniebootstrap-listy" id="uzywaniebootstrap-listy"></a>

Gówne klasy:

* `list-unstyled`: Lista bez listy-stylu a teraz z lewym marginesem.
* `list-inline`: Lista pozioma
* `breadcrumb`: Lista pozioma dla ścieżki nawigacji.
* `dl-horizontal`: Lista z dwóch wyrównanych elementów.
* `list-group`: Panel-lista jak wyświetlacz.

Przykład Breadcrumb:

```
<ul class="breadcrumb">
  <li><a href="#">Home</a></li>
  <li><a href="#">Products</a></li>
  <li class="active">Accessories</li>
</ul>
```

Przykład nagówka i paragrafu:

```
<div class="list-group">
  <a href="#" class="list-group-item">
    <h4 class="list-group-item-heading">What is HTML?</h4>
    <p class="list-group-item-text">HTML stands for HyperText Markup Language. 
      HTML is the main markup     language for describing the structure of Web pages.</p>
  </a>
  <a href="#" class="list-group-item active">
    <h4 class="list-group-item-heading">What is Twitter Bootstrap?</h4>
    <p class="list-group-item-text">Twitter Bootstrap is a powerful front-end framework for faster 
    and easier web development. It is a collection of HTML and CSS based design template.</p>
  </a>
  <a href="#" class="list-group-item">
    <h4 class="list-group-item-heading">What is CSS?</h4>
    <p class="list-group-item-text">CSS stands for Cascading Style Sheet. CSS allows you to specify 
    various style properties for a given HTML element such as colors, backgrounds, fonts etc.</p>
  </a>
</div>
```

### Formy <a href="#uzywaniebootstrap-formy" id="uzywaniebootstrap-formy"></a>

Główna klasa:

* `form-inline` i `form-horizontal` w elemencie `form`.
* `form-group` na div który grupuje `label` i `textarea`. Umożliwia automatyczną regulacje rozstawu.
* `form-control` w `input`, `textarea` i `select` elementy - które normalnie mają szerokosć 100%.

Pojemnik który ma `form-group` klasa zawsze potrzebuje etykiety. Żeby dodać etykietę i wyświetlać ją, musisz użyć klasę `sr-only` .Na przykład:

```
<div class="form-group">
  <label class="sr-only" for="exampleInput">Email address, label not visible</label>
  <input type="email" class="form-control" id="exampleInput" placeholder="Enter email">
</div>
```

Klasy które zmieniają wygląd w zależności od stref zawartości walidacji:

* `has-warning`
* `has-error`
* `has-success`

Klasy, które umożliwiają wyświetlanie ikony w polu tekstowym:

* `glyphicon et form-control-feedback`
* `glyphicon-ok`
* `glyphicon-warning-sign`
* `glyphicon-remove`

Na przykład:

```
<div class="form-group has-warning">
  <label class="control-label" for="input1">Label with warning</label>
  <input type="text" class="form-control" id="input1">
  <span class="glyphicon glyphicon-warning-sign form-control-feedback"></span>
</div>
```

### Przyciski i linki <a href="#uzywaniebootstrap-przyciskiilinki" id="uzywaniebootstrap-przyciskiilinki"></a>

Główne klasy:

* `btn`: Klasa bazowa dla przycisków
* `btn-default`, `btn-primary`, `btn-success`, `btn-info`, `btn-warning`, `btn-danger`, `btn-link`: Aby zmienić wygląd przycisku.
* `btn-lg`, `btn-sm` and `btn-xs`: Aby zmienić rozmiar przycisku.
* `btn-block`: Aby zmienić rozmiar elementu nadrzędnego .
* `active` i `disabled`: zmianę dostępności przycisku&#x20;

```
<span class="button ajax_add_to_cart_button btn btn-default disabled">
  <span>{l s='Add to cart'}</span>
</span>
<a itemprop="url" class="button lnk_view btn btn-default" 
    href="{$product.link|escape:'html':'UTF-8'}" title="{l s='View'}">
  <span>{l s='More'}</span>
</a>
<button type="submit" name="submitMessage" id="submitMessage" 
    class="button btn btn-default button-medium">
  <span>{l s='Send'}<i class="icon-chevron-right right"></i></span>
</button>
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.prestashop-project.org/1-6-documentation/polska-dokumentacja/przewodnik-projektanta/bootstrap-sass-i-compass-w-prestashop-1.6/uzywanie-bootstrap.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
