Belly pain is something that we must all deal with occasionally. Usually, it comes in the form of an upset stomach or diarrhea, but what happens if it is something more? A belly pain that does not go away will have to be dealt with eventually. The good news is, if you talk to your doctor you may be able to get help. As a worst-case scenario, keyhole surgery Singapore leaves no belly pain behind so that you can get back to living life as you want to live it-pain free.
Although you should not stress over a belly ache that happens suddenly, you should take notice of your symptoms. If you have a lot of pain often, you will then want to visit your doctor. There are numerous issues that can go on. They include endometriosis, gall stones, and more. These issues can cause major pain and most of the time, they do not go away over time. They simply get worse as time goes on. Keyhole surgery becomes an option when the doctor has diagnosed you with one of these issues and you both have determined that a solution is required.
As far as a procedure goes, keyhole surgery Singapore is nothing major. It is a simple surgery that can eliminate a lot of the pain that you may be dealing with. Through a few small incisions, your surgeon can remove damaged tissue and whatever may be causing you to feel stomach pains that do not go away. After surgery, you can leave the hospital within a few hours and soon after that, you will be pain free. Most people say that the minor pain that they feel after surgery is gone within a couple days and within a week or so, they are back to their normal routine.
Most of the issues that can be solved with keyhole surgery will not return to ever cause you further pain. This means that you can live the life that you have been hoping to live. In some cases, such as for women who have been dealing with endometriosis; they may be able to live a life that now includes the ability to have children. This is a small miracle for some women who have spent their life dealing with the prospect of never having a normal pregnancy. Are you ready to see what it can do for you?


If you are in need of effective and unique website traffic, Webstars2k might be a good fit. Webstars2k is owned, operated and programmed by Maryanne Myers with over 20 years of experience. Take a look at a few things that make Webstars2k Unique.
First, Webstars2K is a standalone solo ad marketing service with banner advertising added in. Your Solo ad will be sent to her subscriber list of over 84,000 people. This does not include other traffic websites she has programmed. As a customer you can purchase solo ads for your website. Then you follow her instructions after confirmation of purchase. Once your solo ad is received you get a confirmation email from Maryanne stating when your solo ad will be published. She gets back to you as soon as possible. That is good customer service. Click here to read more.


Welcome to Mark Kaufman Roofing. We are a local roofing company that has been satisfying customers since 1988 with our dedicated team of professional roofers, here to provide you with the best quality of work in southwest Florida. We are here to assist you with all your roofing needs. Emergencies are our #1 priority. If a problem arises, don't hesitate to call Mark Kaufman Roofing for a fast response. We are the best roofing contractor you will want to meet.
Mark Kaufman Roofing is a great company that shows up on time, and I love the quality of my new roof.
I think they did a professional job. Everybody was on time, pleasant, and they got things done. The work was carefully inspected. The guys on the roof really got things done. Construction is hard work, but they did a good job.
I am happy with the new roof. Mark Kaufman Roofing used great materials.
The company performs above and beyond expectations. The timeframe was less than originally quoted for a complete job.
I would highly recommend them to anyone that will ask me who did my roof. They did very well, and the guys were really good.
They were very professional and my roof looks fabulous. Everyone had the best customer service from start to finish.
I'm very pleased with the professional service and quality of the job, and I'm very satisfied with my new roof.
I would give them zero stars!
We were very satisfied with the professionalism they gave us.
Share feedback about your experience with Mark Kaufman Roofing.
Enter the confirmation code from your mailer and publish your review of Mark Kaufman Roofing.


Ensure you are equipped and able to evidence training for your GDPR compliance role.
Having an appropriately trained Data Protection Officer (DPO) is one of the key elements of GDPR compliance. With fines up to €20,000,000, getting it right is critical.
best practice for evidencing compliance.
This intensive and interactive training day is limited to 50 people to ensure you have a focused experience and the opportunity to have all your questions answered. The mix of keynote presentations and workshops, with case studies to discuss in small groups, provide you with the right environment to put what you learn into practice.
All attendees will receive a certificate of attendance to be able to evidence training to the ICO.


text:
Home Books Syndromes: Rapid Recognition and Perioperative Implications, 2e
Basal Cell Carcinomas with Milia and Coarse, Sparse Hair Syndrome
Basal Cell Carcinomas with Milia and Coarse, Sparse Hair Syndrome. In: Bissonnette B, Luginbuehl I, Engelhardt T. Bissonnette B, & Luginbuehl I, & Engelhardt T(Eds.),Eds. Bruno Bissonnette, et al.eds. Syndromes: Rapid Recognition and Perioperative Implications, 2e. McGraw Hill; 2019. Accessed January 19, 2022. https://accessanesthesiology.mhmedical.com/content.aspx?bookid=2674&sectionid=220522255
Basal cell carcinomas with milia and coarse, sparse hair syndrome. Bissonnette B, Luginbuehl I, Engelhardt T. Bissonnette B, & Luginbuehl I, & Engelhardt T(Eds.),Eds. Bruno Bissonnette, et al. (2019). Syndromes: Rapid Recognition and Perioperative Implications, 2e. McGraw Hill. https://accessanesthesiology.mhmedical.com/content.aspx?bookid=2674&sectionid=220522255
"Basal Cell Carcinomas with Milia and Coarse, Sparse Hair Syndrome." Syndromes: Rapid Recognition and Perioperative Implications, 2e Bissonnette B, Luginbuehl I, Engelhardt T. Bissonnette B, & Luginbuehl I, & Engelhardt T(Eds.),Eds. Bruno Bissonnette, et al. McGraw Hill, 2019, https://accessanesthesiology.mhmedical.com/content.aspx?bookid=2674&sectionid=220522255.
Genetic inheritance
Precautions before anesthesia
Anesthetic considerations
Pharmacological implications
Other conditions to be considered
Basal cell carcinomas, multiple milia on face and limbs, sparse scalp and body hair, and increased sweating and facial pigmentation.
Incidence is not known, but if it is considered a separate entity from ☞Bazex-Dupré-Christol Syndrome, then it is exquisitely rare.
Inheritance seems to be either autosomal dominant or X-linked dominant.
The main features of these mentally normal patients are sparse, coarse scalp hair, sparse body hair (eyebrows, eyelashes, axillary, and pubic hair), and multiple, often big milia (keratin-filled cysts 1-2 mm in diameter, also known as "milk spots") present since birth on the face, limbs, and buttocks. These milia tend to decrease in numbers or even disappear spontaneously around puberty. Overall, the skin is described as very dry with mildly to markedly increased facial pigmentation. Numerous basal cell nevi are common. Most often multiple basal cell carcinomas develop (in some patients >100) starting already in early adult life. Mild hypertelorism and dysplastic nails on the halluces have been described occasionally. Some patients complain about excessive sweating, which is different from ☞Bazex-Dupré-Christol Syndrome, where sweating is decreased. Nevertheless, some experts consider it to be the same entity as ☞Bazex-Dupré-Christol Syndrome.
Routine preoperative assessment and examination. There are no specific anesthetic precautions related to this disorder.
Atropine and other parasympatholytic drugs may be beneficial if sweating is excessive, which might potentially render taping the endotracheal tube, intravenous cannulas, and ECG electrodes challenging. However, temperature must be controlled to prevent hyperthermia.
Atropine and other parasympatholytic drugs inhibit sweating, hence hyperthermia could occur.
☞Bazex-Dupré-Christol Syndrome (Bazex Syndrome; Acrokeratosis Paraneoplastica; Follicular Atrophoderma-Basocellular Proliferations-Hypotrichosis Syndrome; Follicular Atrophoderma-Basal Cell Carcinoma Syndrome): X-linked dominant inherited disorder characterized by follicular atrophoderma in combination with hypotrichosis, hypohidrosis, and nevoid basal cell carcinomas.
☞Gorlin-Goltz Syndrome (Basal Cell Nevus Syndrome; Gorlin Syndrome). N.B.: Do not confuse with Focal Dermal Hypoplasia Syndrome, which is sometimes also referred to as Goltz-Gorlin Syndrome or ☞Goltz Syndrome (Synonyms: Goltz-Peterson-Gorlin-Ravits Syndrome; Jessner-Cole Syndrome; Liebermann-Cole Syndrome): Autosomal dominant inherited ectodermal disorder characterized by basal cell nevi on the torso and shoulders with a high risk for transition into basal cell carcinomas. Facial abnormalities include macrocephaly, mild hypertelorism, thick and often fused eyebrows, and broad nasal root.
☞Rombo Syndrome: Autosomal dominant inherited disorder with facial follicular skin atrophy, milia and telangiectases, absent eyelashes and eyebrows, and later in life basal cell carcinomas. Sweating is normal.
Oley CA, Sharpe H, Chenevix-Trench G: Basal cell carcinomas, coarse sparse hair, and milia. Am J Med Genet 43:799, 1992. ...

redpajama_set_name: RedPajamaCommonCrawl


Find yourself with a DUI arrest in Oakland?
Ms. Morell is a local DUI defense attorney with over 23 years of exclusive DUI defense experience. She has devoted her legal career to defending those who have been accused of DUI in Oakland and the surrounding areas. She only takes DUI cases. Many law offices take every type of crime that walks through the door and usually view DUI cases as unimportant. Not Ms. Morell. She knows the DUI defenses and how to use them to your benefit. Why hire a lawyer that is not educated in the most recent DUI defenses? Ms. Morell knows the Oakland DUI process and knows how to present your best defense.
The following police agencies patrol the City of Oakland: CHP Oakland, Oakland Police Department, and Alameda County Sheriff's Department. When you are arrested for a DUI in Oakland, California, you will be given a court date. The Court that handles all Oakland DUI arrests is the Alameda Superior Court, Wiley W. Manuel Courthouse, 661 Washington Street, Oakland, CA 94607.
On your court date, your case will be assigned to a certain department. Your first court date is called an "arraignment." This date is a procedural court date where the complaint is received listing your charges and the police report. The chemical test results are also received. The case is then continued to another court date. In between the first court date and the second court date, the investigation into your case starts. This is a very important part of your case and why an attorney is essential to the proper defense of your case. It is possible to have charges reduced and avoid jail time.
It is possible to avoid any suspension time at all and keep your license valid. Call Amy and she will tell you how.
Amy Morell is knowledgeable of local rules and procedures of DUI cases in Oakland. Once hired, she will work tirelessly and devote her extensive knowledge and resources toward getting you the best possible outcome in your case. She will provide you with specialized representation and will personally handle every aspect of your case. Please call 510-293-9440 to speak with Amy directly.


text:
Description of node <http://id.insee.fr/concepts/definition/c1667/definition/v2/en>
http://id.insee.fr/concepts/definition/c1667/definition/v2/en http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://rdf-vocabulary.ddialliance.org/xkos#ExplanatoryNote
http://id.insee.fr/concepts/definition/c1667/definition/v2/en http://purl.org/pav/version 2
http://id.insee.fr/concepts/definition/c1667/definition/v2/en http://rdf-vocabulary.ddialliance.org/xkos#plainText To combat climate change, two major agreements were adopted at international level: the United Nations Framework Convention on Climate Change (UNFCCC) adopted in 1992 in Rio, and the Kyoto Protocol adopted in 1997.At the Earth Summit in Rio, the UNFCCC provided for a conference with the parties each year. The aim is to stabilise the concentration of greenhouse gases in the atmosphere at a level preventing any serious disruption of the climate for mankind. For the industrialised countries, the objective was to stabilise, by the year 2000, the emission of greenhouse gases at the level of 1990. In this objective, the contribution of France consists in mastering its emissions over the period.The 3rd conference in Kyoto resulted in the adoption of the so-called "Kyoto Protocol" which came into effect on February 16, 2005. Certain countries which signed it have set quantitative objectives. For the period 2008-2012, the industrialised countries have made a commitment to reduce their emissions of the main greenhouses gases by 5.2% in relation to their level in 1990.The Kyoto Protocol was ratified in 2002 by the European Union which has a joint objective for an 8% reduction of greenhouse gases.
http://id.insee.fr/concepts/definition/c1667/definition/v2/en http://purl.org/dc/terms/language en
http://id.insee.fr/concepts/definition/c1667/definition/v2/en http://eurovoc.europa.eu/schema#noteLiteral

To combat climate change, two major agreements were adopted at international level: the United Nations Framework Convention on Climate Change (UNFCCC) adopted in 1992 in Rio, and the Kyoto Protocol adopted in 1997.

At the Earth Summit in Rio, the UNFCCC provided for a conference with the parties each year. The aim is to stabilise the concentration of greenhouse gases in the atmosphere at a level preventing any serious disruption of the climate for mankind. For the industrialised countries, the objective was to stabilise, by the year 2000, the emission of greenhouse gases at the level of 1990. In this objective, the contribution of France consists in mastering its emissions over the period.

The 3rd conference in Kyoto resulted in the adoption of the so-called "Kyoto Protocol" which came into effect on February 16, 2005. Certain countries which signed it have set quantitative objectives. For the period 2008-2012, the industrialised countries have made a commitment to reduce their emissions of the main greenhouses gases by 5.2% in relation to their level in 1990.

The Kyoto Protocol was ratified in 2002 by the European Union which has a joint objective for an 8% reduction of greenhouse gases.

http://id.insee.fr/concepts/definition/c1667 http://www.w3.org/2004/02/skos/core#definition http://id.insee.fr/concepts/definition/c1667/definition/v2/en


text:
Nel settore delle costruzioni, la Dichiarazione ambientale di prodotto (DAP o EPD Environmental Product Declaration) è disciplinata, a livello internazionale, dalla norma ISO 21930:2007  "Sustainability in building construction – Environmental declaration of building products" elaborata dal sottocomitato TC 59/SC 17 "Sustainability in building construction" della commissione tecnica ISO TC 59 "Building in Construction".

La ISO 21930 è uno Standard Internazionale che in accordo con i principi della ISO 14025 "Dichiarazioni ambientali di Tipo III" e della ISO/DIS 15392 "General Principles", ha lo scopo di descrivere i principi, i requisiti e la struttura della dichiarazione ambientale di Tipo III dei prodotti da costruzione al fine di dare uniformità dei mezzi, delle modalità e di garantire la trasparenza, la coerenza e la solidità scientifica della metodologia con cui si giunge alla dichiarazione ambientale dei prodotti da costruzione.
La ISO 21930, che tratta nell'ambito della sostenibilità in modo specifico degli impatti e degli aspetti ambientali dei prodotti da costruzione, escludendo gli aspetti economici e sociali, fa parte di una serie di standards (al 2007 allo stato di elaborazione) che include:
ISO/DIS 15392 "Sustainability in building construction – General principles",
ISO/AWI TR 21932 "Sustainability in building construction –Terminology",
ISO/CD 21929, "Sustainability in building construction – Sustainability indicators - Part 1 – Framework for development of indicators for Buildings",
ISO/CD 21931-1 "Sustainability in building construction – Framework for Methods of Assessment of Environmental Performance of Construction Works - Part 1 - Buildings".

In sede di normazione europea CEN è stata costituita, su  mandato della Commissione Europea del 2004, la Commissione Tecnica CEN/TC 350 "Sustainability of construction work" per la standardizzazione nel campo delle prestazioni ambientali degli edifici.
La CEN/TC 350/WG 3 "Product level", una delle tre sotto strutture in cui è organizzata la CEN/TC 350,  ha il compito di produrre nei prossimi anni (entro il 2009) sulla base degli Standard UNI tre documenti relativi alla Dichiarazione Ambientale dei Prodotti da costruzione:
 la Norma "Sustainability of construction works – Environmental product declarations – Product category rules" (su prodotti, processi o servizi), sulla base degli Standards ISO 21930 e ISO 14025
 la Norma "Sustainability of construction works – Environmental product declarations – Communication formats" sulla base degli Standards ISO 21930 e ISO 14025
 il Rapporto Tecnico  Sustainability of construction works – Environmental product declarations – Methodology and data for generic data" sulla base degli Standards ISO 14040 ed ISO 14044

Obiettivo
Lo scopo principale della EPD dei prodotti da costruzione è la comunicazione di informazioni complete, verificabili, esatte e non ingannevoli riguardo agli aspetti ambientali dei prodotti da costruzione durante tutto l'arco della loro vita.
La dichiarazione ambientale, descritta nella norma ISO 21930, è di tipo volontaria ed è finalizzata principalmente alla comunicazione tra imprese (business-to-business) ma non esclude la comunicazione tra impresa e consumatori (business-to-consumer).
La EPD fornisce informazioni utili per la progettazione, la valutazione dei prodotti da costruzione e per effettuare confronti tra i diversi prodotti quando sottoposti alle medesime condizioni, ad esempio nelle fasi di progettazione, realizzazione e gestione di un green building.
Secondo la ISO 21930 è possibile avere un EPD per un materiale, per un prodotto e per un componente. L'EPD di un componente si ottiene  unendo i risultati dell'EPD di tutti i materiali/ gli elementi / i prodotti assemblati (come riportato nella ISO 14025).

Struttura
Gli elementi portanti della EPD dei prodotti da costruzione, secondo quanto riportato nella ISO 21930, sono:
LCA: la metodologia, il riferimento scientifico per il calcolo, la quantificazione degli impatti ambientali potenziali associati al ciclo di vita del prodotto. I dati ottenuti dalla LCA sono riportati nella EPD.
PCR (Product Category Rules): il documento che  contiene le regole necessarie per rendere confrontabili gli studi LCA e le EPD riferite a prodotti di una stessa categoria. Il PCR definisce le caratteristiche tecniche e funzionali che caratterizzano una stessa categoria di prodotti, relativamente alla quale sono stabilite le regole per lo sviluppo della LCA ed i riferimenti necessari alla redazione della EPD.  Il PCR deve essere sviluppato attraverso una consultazione "aperta" con i soggetti interessati  prima della loro approvazione.
Verifica di un Ente terzo indipendente della veridicità e correttezza delle informazioni riportate nella EPD.

Responsabilità
Il produttore o il gruppo di produttori di prodotti da costruzione riferibile alle stesse PCR  sono gli unici proprietari dei dati ed hanno l'obbligo e la responsabilità della EPD per il prodotto da costruzione, nessun altro soggetto può essere autorizzato a dichiarare le performance del prodotto da costruzione.

Metodologia
La Dichiarazione Ambientale dei Prodotti da costruzione si basa, sulla metodologia LCA come regolamentata della serie ISO14040.
Le principali fasi della LCA secondo le norme ISO 14040 sono:
definizione dell'obiettivo e del campo di applicazione (ISO 14041)
inventario degli input e degli output (life cycles inventory analysis) (ISO 14041)
valutazione degli impatti ambientali correlati agli input ed output (impact assessment) (ISO 14042)
interpretazione dei dati (ISO 14043)

Le informazioni ambientali riportate nella EPD di un prodotto da costruzione coprono tutte le fasi del ciclo di vita ("dalla culla alla tomba") e sono suddivise in tre fasi principali:
fase prodotto (fornitura del materiale allo stato naturale, trasporto alla produzione, fabbricazione)
fase costruzione e uso (trasporto sul luogo della costruzione, installazione della costruzione, uso, manutenzione e riparazione, sostituzione)
fase di fine vita (demolizione, trasporto,  smaltimento/riciclaggio)

Documenti
La sequenza dei documenti che portano dal PRC alla EPD sono, secondo la ISO 21930:
PCR  Document
Project Documentation
Project Report
EPD

PCR "Product Category Rules"
Il PCR deve regolamentare i seguenti aspetti:
definizione della categoria del prodotto e descrizione (e.g. funzione, performance tecniche e uso)
definizione dell'obiettivo e dello scopo della LCA del prodotto, secondo le serie ISO 14040 (unità funzionale, unità dichiarate, sistema di confine, descrizione dei dati, criteri per includere input ed output, requisiti di qualità dei dati, unità)
analisi dell'inventario (raccolta dati, procedure di calcolo e allocazione dei flussi dei materiali e dell'energia e distribuzione)
selezione delle categorie degli impatti e regole per il calcolo
parametri predeterminati per riportare i dati della LCA
requisiti per la fornitura di informazioni ambientali addizionali
materiali e sostanze da dichiarare
istruzioni per la produzione dei dati  richiesti per sviluppare la dichiarazione (LCA, LCI, moduli di informazione e informazioni ambientali)
istruzioni sul contenuto e sul format della dichiarazione ambientale di Tipo III;
informazioni sulle fasi non considerate, se la dichiarazione non si basa su una LCA che copre l'intero ciclo di vita
periodo di validità

Project Documentation
La documentazione del progetto deve fornire i seguenti dati:
dati ambientali di input e output dell'unità di processo che sono stati utilizzati nei calcoli dalla LCA
documentazione che fornisce le basi da cui sono stati formulati i dati di processo per LCA
specifiche tecniche del materiale da costruzione,  prodotti o elemento
forme di consumo di energia
dati delle emissioni
produzione di rifiuti
dati che dimostrano che le informazioni sono complete.
letteratura di riferimento e i database da cui i dati sono stati ricavati i dati
documentazione che dimostra che i materiali, i prodotti da costruzione o gli elementi possono soddisfare le funzioni desiderate e le performance
documentazione che dimostra che i processi scelti e gli scenari nel diagramma di flusso  soddisfano i requisiti riportati nello standard ISO 21930
documentazione che giustifica il ciclo di vita scelto
documentazione e giustificazione delle percentuali utilizzate per i calcoli nelle procedure di distribuzione
informazioni che mostrano come sono stati ottenuti i dati generici
documentazione utilizzata per giustificare ogni informazione qualitativa nelle informazioni ambientali addizionali
procedure utilizzate per la raccolta dei dati
fattori caratterizzanti, fattori normalizzati e pesatura dei fattori utilizzati
criteri e giustificazione utilizzati per determinare il sistema dei limiti e la selezione dei flussi di input e output
documentazione utilizzata per sostenere le altre scelte e assunzioni

Project Report
Il Project Report dello studio LCA deve essere redatto secondo i requisiti e le indicazioni della ISO/DIS 14044. Il rapporto del progetto contiene ogni dato ed informazione importanti relativi ai dati pubblicati nell'EPD e come richiesto nel PCR.

EPD
La EPD deve riportare le seguenti informazioni:
 Dichiarazione di informazioni generali
Dichiarazione degli aspetti ambientali:
 Dichiarazione dell'uso delle risorse e degli impatti ambientali (obbligatorio)
 Rifiuti da smaltire (obbligatorio)
Emissioni verso l'aria e l'acqua interne (obbligatorio)
Scenari e informazioni tecniche (facoltativo)
Differenziazione  dell'uso del materiale e delle risorse energetiche (facoltativo)

Verifica della EPD
La verifica della EPD dei prodotti da costruzione deve  seguire le indicazione dell'articolo 8 della ISO14025.

Normativa
ISO 14020 Environmental labels and declarations - General principles
ISO 14025 Environmental labels and declarations – Type III environmental declarations
ISO 14040 Environmental management. Life cycle assessment. Principles and framework
ISO 14041 Environmental management. Life cycle assessment. Goal and scope definition and inventory analysis
ISO 14042 Environmental management. Life cycle assessment. Life cycle impact assessment
ISO 14043 Environmental management. Life cycle assessment. Life cycle Interpretation
ISO/DIS 14044 Environmental management - life cycle assessment - requirements and guidelines
ISO/WD 15392 Buildings and constructed assets – Sustainability in building construction –General Principles
ISO/DTS 21931 Buildings and constructed assets – Sustainability in building construction – Framework for Assessment of Environmental Performance of Construction Works – Part 1 - Buildings
ISO/CD 21932 Buildings and constructed assets – Sustainability in building construction –Terminology

Collegamenti esterni

Edilizia

redpajama_set_name: RedPajamaWikipedia


text:
Café Menu
The Science of Wine with Tara Gomez of Kitá Wines
A love of wine attracts a number of future winemakers to the industry, but for Tara Gomez, the winemaker for Kitá Wines, it was a love of science and a Fisher-Price microscope.
A love of science leads to a career in wine
Gomez said the microscope that she had when she was 4 years old fostered her love of science and nature exploration. As a child, she would tag along when her parents went wine tasting. The sight of the giant stainless-steel vats and aromatics of the winery cellars sparked her curiosity but walking by the lab set her career trajectory. The young Gomez saw people in white lab coats using chemistry to test the acidity in the wine and that created an instant connection with her.
With the financial help of her Chumash Tribe, she sought out a career in enology in high school and then went on to Fresno State to get her degree. She got her feet wet at Fess Parker and J. Lohr wineries, and then went on to work two harvests in Spain. When she came back to the states, the Chumash Tribe was in negotiation to purchase the Camp 4 property that produces the majority of the label's grapes, and so she returned home. It was a fitting return, according to Gomez, because the Chumash had financially supported her educational efforts and now she gets to pay it forward.
Dedication to each varietal
A producer of small-batch, ultra-premium wines, Kitá Wines produces 19 varietals on the 256-acre vineyard that sits on Camp 4 at the eastern edge of the Santa Ynez Valley. One of the hottest microclimates, it's the farthest east Santa Barbara County AVA before transitioning into the Happy Canyon AVA. Kitá does produce Sta. Rita Hills Chardonnay and Pinot Noir because of the cooler influences from that area and because the tasting room is located in Lompoc, in the heart of the Sta. Rita Hills appellation.
As a winemaker, Gomez considers herself a purist. She believes in minimal manipulation to maximize varietal characteristics. While Kitá does produce three blends that allow Gomez to tap into her artistic side, the rest are 100 percent varietals. As proof of her dedication to a varietal, Gomez travels to Europe each year, picks a varietal she wants to work with, and learns everything she can about it. Armed with that knowledge, she returns to incorporate a blend of Old World and New World winemaking techniques in Kitá wines. Taste the result by the glass or flight throughout the month of August, or take one of this month's featured bottles home!
Check out our exclusive interview with Tara!
At the Los Olivos Wine Merchant & Cafe we focus on providing a true wine country experience. Much of our produce for the Café is organically grown at our Café farm in Los Olivos. And our award-winning wine selection of over 500 mostly local wines compliments our fresh wine country cuisine. As a hub for the local California Central Coast wine scene, we love getting to know our local winemakers and sharing their stories with you! We welcome you to check out more of our interviews and blogs here.
ballard canyon ava
camp 4
dry farming
happy canyon
los olivos winemerchant and cafe
palmina
petit syrah
Winemaker Dinner
Taste the Central Coast
Buy Wine Online California Central Coast Wines Wine Links & Resources
Wines Under 20 California Wine Pinot Noir Chardonnay Syrah Cabernet Bernat Wines Wine Clubs
In the heart of Santa Barbara Wine Country, we are the premier wine merchant for California Central Coast wines, from Santa Barbara County to Monterey County, with select vintages from other areas of California's Wine Country and noteworthy wines from around the world.
© 2022 Los Olivos Wine Merchant & Cafe
We'd love to share wine country musings, events, and special offers with you. No need to worry about getting inundated with emails from us, we only send them about once a month both from the Café and the Wine Merchant.


text:
2010 Winter Olympics: Kim Yu-na wins gold in record fashion
By Associated Press Feb 26, 2010, 7:50am MST
Share All sharing options for: 2010 Winter Olympics: Kim Yu-na wins gold in record fashion
South Korea's Kim Yu-Na reacts after her free program at the women's figure skating. She claimed the gold medal.
Amy Sancetta, Associated Press
VANCOUVER — Kim Yu-na put one hand to her mouth and let the tears flow.
All that pressure, so many expectations. The "Queen" took it all on and delivered royally.
The South Korean won the Olympic gold medal Thursday night, soaring to a world-record 228.56 points and shattering her previous mark by more than 18 points. It may go down as one of the greatest performances in figure skating history, and it's sure to set off wild celebrations from Seoul to Pyongchang. It's South Korea's first medal at the Winter Olympics in a sport other than speedskating.
Even Kim seemed to be dazzled by the show she put on, gasping when she saw the monstrous score. Coach Brian Orser gave a Rocky-like victory pump, shaking his clasped fists over each shoulder.
Longtime rival Mao Asada of Japan won the silver medal, but it was no contest — even with Asada landing both her triple Axels, one in combination with a double toe loop. Joannie Rochette, skating four days after the sudden death of her mother, won the bronze, giving Canada its first women's medal since Liz Manley's silver in 1988.
The Americans, meanwhile, are going home without at least one medal for only the second time since 1952. The other time? 1964, three years after a plane crash wiped out the entire U.S. team on its way to the world championships.
Mirai Nagasu was fourth while U.S. champion Rachael Flatt dropped to seventh.
Kim came in bearing almost incomprehensible pressure. Not only was the reigning world champ the biggest favorite since Katarina Witt in 1988 — she's lost just one competition over the last two seasons — she carried the weight of an entire nation on her slim shoulders.
The most popular athlete in South Korea, she's been dubbed "Queen Yu-na" — check out the sparkly crowns that twinkle in her ears — and she needs bodyguards whenever she returns home from her training base in Toronto. Anything she does creates a frenzy, and even a simple practice draws a rinkful of photographers.
Kim seemed to shrug it all off earlier this week, saying after the short program that it felt like any other competition.
There were simply no flaws in Kim performance, from her skating to her expressions to that lovely cobalt blue dress. While other skaters slow down as they approach their jumps to steady themselves, she hurtles into them at full speed yet touches down with pillow-like softness. Her connecting steps are like art on ice, and her edge quality is so fine there is not even the slightest hint of a harsh scrape, just the sound of her crisp edge. Her spins are centered so perfectly the tracings look as if they were made with a protractor, and she's got to be quadruple-jointed with all the positions she manages in her combination spins.
But what really makes her transcendent is her performance skills. She breathed life into Gershwin's "Concerto in F," moving across the ice like notes on a score. As the music lifted the first time, she put one hand on the small of her back and gave a flirty little smile that set shutters clicking throughout the building.
When she finished, you could almost see the pressure fall away as Kim bent over and cried. The tears fell no matter how hard she tried to blink them back, and she held up her hands helplessly when she reached Orser. So many stuffed toys and flowers littered the ice the full complement of sweepers had to be deployed — not once, but twice.
It almost wasn't fair that Asada, skating next, had to try and one-up that.
Next Up In Sports
Utah has a new defensive tackles coach, and he is a Ute legend
Is Jaxson Dart to BYU a possibility?
College football state of the union: It's a mess
Is Alex Barcello 'the best shooter in the country'?


text:
Q: Dynamic price calculation based on custom field in Woocommerce In Woocommerce on each product page there is a Text Box, which allows users to enter their own custom text.  This text is then applied to the product, with the customer being charged on a per letter basis.
I have managed to get everything working, apart from the Maths Logic.  When a visitor enters x amount of letters, the current Maths logic correctly calculates the Product Price + Cost of Custom Letters and outputs this sum to the Basket Widget.
Where I am running into problems, is when the visitor goes to the Basket Page, the Cost of the Custom Lettering is doubled.
I just cannot seem to work out why this is.
Create Text Field in Product Dashboard:
<?php

/*Create Text Field in Product Dashboard*/

function add_text_field_product_dashboard(){

   global $post;

   $input_checkbox = get_post_meta( $post->ID, '_custom_text_option', true );
   if( empty( $input_checkbox ) || $input_checkbox == 'no' ) $input_checkbox = '';

    echo '
';

    /*Product Checkbox Field*/
    woocommerce_wp_checkbox(
        array(
            'id'        => '_custom_text_option',
            'desc'      =>  __('set custom custom text field', 'woocommerce'),
            'label'     => __('Display custom custom text field', 'woocommerce'),
            'desc_tip'  => 'true',
            'value'     => $input_checkbox
        )
    );
    /*Minimum Letter Text Box*/
    woocommerce_wp_text_input(
        array(
            'id'        => '_minimum_custom_text_option',
            'name'      => '_minimum_custom_text_option',
            'desc'      =>  __('set custom minimum Lettering text field', 'woocommerce'),
            'label'     => __('Minimum Letters', 'woocommerce'),
            'desc_tip'  => 'true'
        )
    );
    /*Maximum Letter Text Box*/
    woocommerce_wp_text_input(
        array(
            'id'        => '_maximum_custom_text_option',
            'desc'      =>  __('set custom maximum Lettering text field', 'woocommerce'),
            'label'     => __('Maximum Letters', 'woocommerce'),
            'desc_tip'  => 'true'
        )
    );
    /*Cost Per Letter Pricing*/
    woocommerce_wp_text_input(
        array(
            'id'        => '_pricing_custom_text_option',
            'desc'      =>  __('set custom pricing Lettering text field', 'woocommerce'),
            'label'     => __('Cost Per Letter', 'woocommerce'),
            'desc_tip'  => 'true'
        )
    );

    echo '
';
}
add_action('woocommerce_product_options_advanced', 'add_text_field_product_dashboard');
?>

Save Text Field Entries:
<?php
/*Save Inputted Entries, in the Product Dashboard Text Fields.*/

/*Checkbox Field*/
 function woocommerce_product_custom_fields_save($post_id){
    $_custom_text_option = isset( $_POST['_custom_text_option'] ) ? 'yes' : '';
    update_post_meta( $post_id, '_custom_text_option', $_custom_text_option );
 }
add_action('woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save');

/*Save Minimum Letters*/
function woocommerce_product_custom_fields_save1($post_id){
    if ( isset( $_POST['_minimum_custom_text_option'] ) )
        update_post_meta($post_id, '_minimum_custom_text_option', esc_attr( $_POST['_minimum_custom_text_option'] ));
}
add_action( 'woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save1' );

/*Save Maximum Letters*/
function woocommerce_product_custom_fields_save2($post_id){
    if ( isset( $_POST['_maximum_custom_text_option'] ) )
        update_post_meta($post_id, '_maximum_custom_text_option', esc_attr( $_POST['_maximum_custom_text_option'] ));
}
add_action( 'woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save2' );

/*Save Cost Per Letter*/
function woocommerce_product_custom_fields_save3($post_id){
    if ( isset( $_POST['_pricing_custom_text_option'] ) )
        update_post_meta($post_id, '_pricing_custom_text_option', esc_attr( $_POST['_pricing_custom_text_option'] ));
}
add_action( 'woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save3' );
?>

Output Custom Text to Product Page:
<?php
/*Output Custom Text Field to Product Page*/

function add_custom_text_field() {
    global $post;

    // Get the checkbox value
    $custom_option = get_post_meta( $post->ID, '_custom_text_option', true );

    // If is single product page and have the "custom text option" enabled we display the field
    if ( is_product() && ! empty($custom_option) ) {
?>

            <?php _e( 'Custom Letters:', 'woocommerce'); ?>

                <input style="min-width:220px" type="text" class="product-counter" name="custom_text" placeholder="<?php _e( 'Enter Your Custom Letters ...', 'woocommerce'); ?>" minlength="<?php global $post; echo get_post_meta($post->ID,'_minimum_custom_text_option',true);?>" maxlength="<?php global $post; echo get_post_meta($post->ID,'_maximum_custom_text_option',true);?>" />

<?php
    }
}
add_action( 'woocommerce_before_add_to_cart_button', 'add_custom_text_field', 0 );
?>
?>

Append to Cart:
<?php
/*Append to Cart once Shoper adds to Cart*/

function save_custom_text( $cart_item_data, $product_id ) {
    if( isset( $_POST['custom_text'] ) && !empty( $_POST['custom_text'] ) ) {
        $cart_item_data[ "custom_text" ] = esc_attr( $_POST['custom_text'] );
    }

    return $cart_item_data;
}
add_filter( 'woocommerce_add_cart_item_data', 'save_custom_text', 99, 2 );
?>

Sum of Product plus Cost Per Letter Entered:
<?php
/*Sum of Product Price plus Custom Text*/

function calculate_custom_text_fee( $cart_object ) {
    foreach ( $cart_object->get_cart() as $cart_item ) {
        // Checking that we got the custom text in cart object
        if( ! empty( $cart_item["custom_text"] ) ) {

            // Quantity of characters entered into Custom Text Field:
            $lenght = strlen( $cart_item["custom_text"] );

            // get the custom pricing for this product
            $pricing_custom = get_post_meta( $cart_item['product_id'], '_pricing_custom_text_option', true );

            // Characters Entered Multiplied by Cost of Each Letter:
            $custom_text_fee = $lenght * $pricing_custom;

            // get product price
            $price = floatval( $cart_item['data']->get_price() );

            // set new price
            $cart_item['data']->set_price( $price + $custom_text_fee );
        }
    }
}
add_action( 'woocommerce_before_calculate_totals', 'calculate_custom_text_fee', 99, 1 );
?>

Output to Cart Description:
<?php
/*Output to Cart Description*/

function render_meta_on_cart_and_checkout( $cart_data, $cart_item = null ) {
    $meta_items = array();

    if( !empty( $cart_data ) ) {
        $meta_items = $cart_data;
    }

    if( isset( $cart_item["custom_text"] ) ) {
        $meta_items[] = array( "name" => "Your Custom Text", "value" => $cart_item["custom_text"] );
    }

    return $meta_items;
}
add_filter( 'woocommerce_get_item_data', 'render_meta_on_cart_and_checkout', 99, 2 );
?>

Ensure Product is in Emails:
<?php
/*Ensure Product is in Email Notifications*/
function custom_text_order_meta_handler( $item_id, $values, $cart_item_key ) {

    if( isset( $values["custom_text"] ) ) {
        wc_add_order_item_meta( $item_id, "Custom Text", $values["custom_text"] );
    }
}
add_action( 'woocommerce_add_order_item_meta', 'custom_text_order_meta_handler', 99, 3 );
?>

Is anyone able to see where I could be going wrong, which is causing my Maths to double the costs in the Basket page?
Just to be clear, the Product Price is called fine.  That is not doubled.  Just the cost of the Custom Text.  I feel there may be an issue with $price but I am just not so sure.
Any pointers, on this matter, would be greatly appreciated.

A: UPDATE
To avoid this problem, I make before the new price calculation and save it in cart object using woocommerce_add_cart_item_data hook (the same hook used to save the custom text in cart object).
Note: For your text I am using trim() php function to remove white spaces from the length letter count… If you dont need it you can remove it.
I have revisited your code making some changes:
// Add custom fields in "product data" settings metabox ("Advanced" tab)
add_action('woocommerce_product_options_advanced', 'add_text_field_product_dashboard');
function add_text_field_product_dashboard(){

   global $post;

    echo '
';

    // Checkbox Field
    woocommerce_wp_checkbox( array(
        'id'        => '_custom_text_option',
        'description'      =>  __('set custom custom text field', 'woocommerce'),
        'label'     => __('Display custom custom text field', 'woocommerce'),
        'desc_tip'  => 'true',
    ) );

    // Minimum Letter Text Box
    woocommerce_wp_text_input( array(
        'id'        => '_minimum_custom_text_option',
        'label'     => __('Minimum Letters', 'woocommerce'),
        'description' =>  __('set custom minimum Lettering text field', 'woocommerce'),
        'desc_tip'  => 'true',
    ) );

    // Maximum Letter Text Box
    woocommerce_wp_text_input( array(
        'id'        => '_maximum_custom_text_option',
        'label'     => __('Maximum Letters', 'woocommerce'),
        'description' => __('set custom maximum Lettering text field', 'woocommerce'),
        'desc_tip'  => 'true'
    ) );

    // Cost Per Letter Pricing
    woocommerce_wp_text_input( array(
        'id'        => '_pricing_custom_text_option',
        'label'     => __('Cost Per Letter', 'woocommerce'),
        'description' => __('set custom pricing Lettering text field', 'woocommerce'),
        'desc_tip'  => 'true'
    ) );

    echo '
';
}

// Save Inputted Entries, in the Product Dashboard Text Fields.
add_action('woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save');
 function woocommerce_product_custom_fields_save($post_id){
    // Checkbox Field
    $checkbox = isset( $_POST['_custom_text_option'] ) ? 'yes' : 'no';
    update_post_meta( $post_id, '_custom_text_option', $checkbox );

    // Save Minimum Letters
    if ( isset( $_POST['_minimum_custom_text_option'] ) )
        update_post_meta($post_id, '_minimum_custom_text_option', sanitize_text_field( $_POST['_minimum_custom_text_option'] ) );

    // Save Maximum Letters
    if ( isset( $_POST['_maximum_custom_text_option'] ) )
        update_post_meta($post_id, '_maximum_custom_text_option', sanitize_text_field( $_POST['_maximum_custom_text_option'] ) );

    // Save Cost Per Letter
    if ( isset( $_POST['_pricing_custom_text_option'] ) )
        update_post_meta($post_id, '_pricing_custom_text_option', sanitize_text_field( $_POST['_pricing_custom_text_option'] ) );
}

// Output Custom Text Field to Product Page
add_action( 'woocommerce_before_add_to_cart_button', 'add_custom_text_field', 0 );
function add_custom_text_field() {
    global $post;

    // Get the checkbox value
    $custom_option = get_post_meta( $post->ID, '_custom_text_option', true );

    // If is single product page and have the "custom text option" enabled we display the field
    if ( is_product() && ! empty($custom_option) ) {
?>

            <?php _e( 'Custom Letters:', 'woocommerce'); ?>

                <input style="min-width:220px" type="text" class="product-counter" name="custom_text" placeholder="<?php _e( 'Enter Your Custom Letters ...', 'woocommerce'); ?>" minlength="<?php global $post; echo get_post_meta($post->ID,'_minimum_custom_text_option',true);?>" maxlength="<?php global $post; echo get_post_meta($post->ID,'_maximum_custom_text_option',true);?>" />

<?php
    }
}

// Set custom text and  calculated price as custom cart data in the cart item
add_filter( 'woocommerce_add_cart_item_data', 'save_custom_data_in_cart_object', 30, 3 );
function save_custom_data_in_cart_object( $cart_item_data, $product_id, $variation_id ) {
    if( ! isset( $_POST['custom_text'] ) || empty( $_POST['custom_text'] ) )
        return $cart_item_data;

    // Get the custom text cost by letter
    $pricing_custom = (float) get_post_meta( $product_id, '_pricing_custom_text_option', true );

    // Get an instance of the WC_Product object
    $product = $variation_id > 0 ? wc_get_product($variation_id) : wc_get_product($product_id);
    $product_price = (float) $product->get_price(); // Get the product price

    // Get the text
    $custom_text = sanitize_text_field ( $_POST['custom_text'] );
    // Get lenght (trimming white spaces)
    $lenght = (float) strlen ( trim( $custom_text ) );

    // Set the text and the calculated price as custom cart data in the cart item
    $cart_item_data['custom_data']['price'] = $product_price + ( $lenght * $pricing_custom );
    $cart_item_data['custom_data']['text']  = $custom_text;

    return $cart_item_data;
}

// Display Custom text in cart and checkout pages
add_filter( 'woocommerce_get_item_data', 'render_meta_on_cart_and_checkout', 99, 2 );
function render_meta_on_cart_and_checkout( $cart_data, $cart_item = null ) {

    if( isset( $cart_item['custom_data']['text'] ) )
        $cart_data[] = array( "name" => "Your Custom Text", "value" => $cart_item["custom_data"]["text"] );

    return $cart_data;
}

// Set the new calculated price of the cart item
add_action( 'woocommerce_before_calculate_totals', 'calculate_custom_text_fee', 99, 1 );
function calculate_custom_text_fee( $cart ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
        return;

    foreach ( $cart->get_cart() as $cart_item ) {
        if( isset( $cart_item['custom_data']['price'] ) ) {
            // Get the new calculated price
            $new_price = (float) $cart_item['custom_data']['price'];

            // Set the new calculated price
            $cart_item['data']->set_price( $new_price );
        }
    }
}

// Save the custom text as order item data (displaying it in order and notifications)
add_action( 'woocommerce_add_order_item_meta', 'custom_text_order_meta_handler', 99, 3 );
function custom_text_order_meta_handler( $item_id, $values, $cart_item_key ) {

    if( isset( $values['custom_data']['text'] ) )
        wc_add_order_item_meta( $item_id, "Custom Text", $values["custom_data"]["text"] );
}

Code goes in function.php file of your active child theme (or active theme).
Tested and works

A: To get the product price by id:
$_product = wc_get_product( $product_id );
$_product->get_regular_price();
$_product->get_sale_price();
$_product->get_price();
OR,
Get regular price :
$price = get_post_meta( get_the_ID(), '_regular_price', true);
// $price will return regular price
Get sale price:
$sale = get_post_meta( get_the_ID(), '_sale_price', true);
// $sale will return sale price

redpajama_set_name: RedPajamaStackExchange


text:
product: material-ui
title: Componente React Grade
components: Grid
githubLabel: 'component: Grid'
materialDesign: https://m2.material.io/design/layout/understanding-layout.html
---

# Grid

O leiaute responsivo da grade do Material Design se adapta ao tamanho e orientação da tela, garantindo a consistência entre leiautes.

Uma [grade](https://m2.material.io/design/layout/responsive-layout-grid.html) cria consistência visual entre leiautes, enquanto permite flexibilidade em uma ampla variedade de projetos. A UI responsiva do Material Design é baseada em uma grade de 12 colunas.

{{"component": "modules/components/ComponentLinkHeader.js"}}

:::warning
⚠ The `Grid` component shouldn't be confused with a data grid; it is closer to a layout grid. For a data grid head to [the `DataGrid` component](/x/react-data-grid/).
:::

## Como funciona

The grid system is implemented with the `Grid` component:

- Ela usa [o módulo CSS de box flexível](https://www.w3.org/TR/css-flexbox-1/) para alta flexibilidade.
- Existem dois tipos de leiautes: _contêineres_ e _itens_.
- Larguras de itens são definidas em porcentagens, desse modo são sempre fluidas e dimensionadas de acordo os seus elementos pai.
- Itens têm preenchimento para criar o espaçamento entre itens individuais.
- Existem cinco pontos de quebra (breakpoints) na grade: xs, sm, md, lg e xl.
- Integer values can be given to each breakpoint, indicating how many of the 12 available columns are occupied by the component when the viewport width satisfies the [breakpoint constraints](/material-ui/customization/breakpoints/#default-breakpoints).

If you are **new to or unfamiliar with flexbox**, we encourage you to read this [CSS-Tricks flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/) guide.

## Grades fluídas

Fluid grids use columns that scale and resize content. A fluid grid's layout can use breakpoints to determine if the layout needs to change dramatically.

### Grade básica

Column widths are integer values between 1 and 12; they apply at any breakpoint and indicate how many columns are occupied by the component.

A value given to a breakpoint applies to all the other breakpoints wider than it (unless overridden, as you can read later in this page). For example, `xs={12}` sizes a component to occupy the whole viewport width regardless of its size.

{{"demo": "BasicGrid.js", "bg": true}}

### Grade com pontos de quebra

Components may have multiple widths defined, causing the layout to change at the defined breakpoint. Width values given to larger breakpoints override those given to smaller breakpoints.

For example, `xs={12} sm={6}` sizes a component to occupy half of the viewport width (6 columns) when viewport width is [600 or more pixels](/material-ui/customization/breakpoints/#default-breakpoints). For smaller viewports, the component fills all 12 available columns.

{{"demo": "FullWidthGrid.js", "bg": true}}

## Espaçamento

To control space between children, use the `spacing` prop. The spacing value can be any positive number, including decimals and any string. The prop is converted into a CSS property using the [`theme.spacing()`](/material-ui/customization/spacing/) helper.

{{"demo": "SpacingGrid.js", "bg": true}}

### Row & column spacing

The `rowSpacing` and `columnSpacing` props allow for specifying the row and column gaps independently. It's similar to the `row-gap` and `column-gap` properties of [CSS Grid](/system/grid/#row-gap-amp-column-gap).

{{"demo": "RowAndColumnSpacing.js", "bg": true}}

## Valores responsivos

You can switch the props' value based on the active breakpoint. For instance, we can implement the ["recommended"](https://m2.material.io/design/layout/responsive-layout-grid.html) responsive layout grid of Material Design.

{{"demo": "ResponsiveGrid.js", "bg": true}}

Responsive values is supported by:

- `colunas`
- `espaçoDeColuna`
- `direção`
- `espaçoDeLinha`
- `spacing`
- todas as outras propriedades do sistema [other props](#system-props)

:::warning
⚠ When using a responsive `columns` prop, each grid item needs its corresponding breakpoint. For instance, this is not working. The grid item misses the value for `md`:

```jsx
<Grid container columns={{ xs: 4, md: 12 }}>
  <Grid item xs={2} />
</Grid>
```

:::

## Interativo

Below is an interactive demo that lets you explore the visual results of the different settings:

{{"demo": "InteractiveGrid.js", "hideToolbar": true, "bg": true}}

## Leiaute Automático

The Auto-layout makes the _items_ equitably share the available space. That also means you can set the width of one _item_ and the others will automatically resize around it.

{{"demo": "AutoGrid.js", "bg": true}}

### Margem negativa

Set one of the size breakpoint props to `"auto"` instead of `true` / a `number` to size a column based on the natural width of its content.

{{"demo": "VariableWidthGrid.js", "bg": true}}

## Grade Complexa

The following demo doesn't follow the Material Design guidelines, but illustrates how the grid can be used to build complex layouts.

{{"demo": "ComplexGrid.js", "bg": true}}

## Grade Aninhada

The `container` and `item` props are two independent booleans; they can be combined to allow a Grid component to be both a flex container and child.

:::info
A flex **container** is the box generated by an element with a computed display of `flex` or `inline-flex`. In-flow children of a flex container are called flex **items** and are laid out using the flex layout model.
:::

https://www.w3.org/TR/css-flexbox-1/#box-model

{{"demo": "NestedGrid.js", "bg": true}}

⚠ Defining an explicit width to a Grid element that is flex container, flex item, and has spacing at the same time lead to unexpected behavior, avoid doing it:

```jsx
<Grid spacing={1} container item xs={12}>
```

If you need to do such, remove one of the props.

## Colunas

You can change the default number of columns (12) with the `columns` prop.

{{"demo": "ColumnsGrid.js", "bg": true}}

## Limitações

### Margem negativa

The spacing between items is implemented with a negative margin. This might lead to unexpected behaviors. For instance, to apply a background color, you need to apply `display: flex;` to the parent.

### white-space: nowrap;

The initial setting on flex items is `min-width: auto`. It's causing a positioning conflict when the children is using `white-space: nowrap;`. You can experience the issue with:

```jsx
<Grid item xs>
  <Typography noWrap>
```

In order for the item to stay within the container you need to set `min-width: 0`. In practice, you can set the `zeroMinWidth` prop:

```jsx
<Grid item xs zeroMinWidth>
  <Typography noWrap>
```

{{"demo": "AutoGridNoWrap.js", "bg": true}}

### direction: column | column-reverse

The `xs`, `sm`, `md`, `lg`, and `xl` props are **not supported** within `direction="column"` and `direction="column-reverse"` containers.

They define the number of grids the component will use for a given breakpoint. They are intended to control **width** using `flex-basis` in `row` containers but they will impact height in `column` containers. If used, these props may have undesirable effects on the height of the `Grid` item elements.

## Leiaute de Grade CSS

The `Grid` component is using CSS flexbox internally. But as seen below, you can easily use [the system](/system/grid/) and CSS Grid to layout your pages.

{{"demo": "CSSGrid.js", "bg": true}}

## System props

As a CSS utility component, the `Grid` supports all [`system`](/system/properties/) properties. You can use them as props directly on the component. For instance, a padding:

```jsx
<Grid item p={2}>
```

redpajama_set_name: RedPajamaGithub