Alarmist Headlines on Antartic Ice Sheet Collapse

original post: http://www.infowars.com/alarmist-headlines-on-antarctic-ice-sheet-collapse-obscure-truth/

Alarmist Headlines on ‘Antarctic Ice Sheet Collapse’ Obscure Truth

  • The Alex Jones Channel Alex Jones Show podcast Prison Planet TV Infowars.com Twitter Alex Jones' Facebook Infowars store

Dubious prediction isn’t even expected for 1,000 years

Paul Joseph Watson
Infowars.com
May 14, 2014

Scaremongering headlines about the “collapse” of the the Antarctic ice sheet omitted the fact that such an event isn’t predicted to happen for as much as 1,000 years, underscoring once again how the mass media grossly exaggerates the threat posed by global warming.

On Monday, the Guardian reported that the “Western Antarctic ice sheet collapse has already begun,” prompting the likes of NBC News, the New York Times, the LA Times and CNN to hastily regurgitate the alarmism.

It isn’t until the third paragraph of the Guardian article that the true context of the story becomes clear, when Suzanne Goldenberg acknowledges that the potential loss of the ice sheet along with a 13ft sea level rise “is still several centuries off, and potentially up to 1,000 years away.”

The article also failed to mention that Antarctic sea ice expanded to record levels for April, growing by more than 110,000sq km a day last month to nine million square kilometers.

Even New York Times environmental writer Andy Revkin, a proponent of the man-made global warming theory, slammed the “awful misuse” of the word “collapse” in the headline of the story.

Such predictions also routinely fail to include the proviso that climate models have proven to be spectacularly wrong on numerous occasions in the past.

In December 2008, Al Gore claimed that the “entire north polar ice cap will be gone in 5 years,” a forecast proven embarrassingly inept by reality.

In 2007 BBC News, citing climate scientists, also predicted that Arctic summers would be “ice free” by 2013. What actually happened was that Arctic ice grew by a mammoth 533,000 square miles in a year from August 2012 to August 2013.

Back in January, Obama science czar John P. Holdren dubiously claimed that the ‘polar vortex’ which caused record low temperatures across many areas of the United States this past winter was caused by global warming, contradicting the United Nations IPCC, which in its 2007 report stated there was, “likely to be a decline in the frequency of cold air outbreaks… in [northern hemisphere] winter in most areas.”

Last year, climate scientists were forced to admit that computer models of predicted temperature increases calculated in 2007 were off by 75%. Figures show that there has been no global warming for over 17 years.

As agenda-driven climate scientists continue to blame every weather pattern on man-made global warming for political purposes, the real climate threat is likely to emerge out of the fact that sunspot activity is at its lowest for 100 years, which researchers warn will lead to plunging temperatures and the onset of a new mini ice age.

Facebook @ https://www.facebook.com/paul.j.watson.71
FOLLOW Paul Joseph Watson @ https://twitter.com/PrisonPlanet

*********************

Paul Joseph Watson is the editor at large of Infowars.com and Prison Planet.com.

This article was posted: Wednesday, May 14, 2014 at 6:06 am

 

Categories: Truth News | Leave a comment

Joe Biden Son Appointed to head of Ukraine Gas Co.

original post: http://www.infowars.com/joe-bidens-son-appointed-to-board-of-ukraines-largest-gas-producer/

Joe Biden’s Son Appointed to Board of Ukraine’s Largest Gas Producer

  • The Alex Jones Channel Alex Jones Show podcast Prison Planet TV Infowars.com Twitter Alex Jones' Facebook Infowars store

Global elite do not disguise efforts to gobble up Ukraine’s natural resources

Kurt Nimmo
Infowars.com
May 13, 2014

Hunter Biden, the son of Vice President Joe Biden, will lead the legal team of Burisma Holdings, the largest natural gas producer in Ukraine.

According to The West Wire News, Burisma Holdings is a considerable player within the Ukrainian natural gas and oil industry. It holds licenses covering the Dnieper-Donets, Carpathian and Azov-Kuban basins and has considerable reserves and production capability.

Hunter Biden is a groomed insider with connections to NED, the organization that did what the CIA did covertly 25 years ago. Photo: Burisma

“Burisma’s track record of innovations and industry leadership in the field of natural gas means that it can be a strong driver of a strong economy in Ukraine. As a new member of the Board, I believe that my assistance in consulting the Company on matters of transparency, corporate governance and responsibility, international expansion and other priorities will contribute to the economy and benefit the people of Ukraine,” the Burisma Holdings websitequotes Biden.

Biden is a lawyer with insider connections to the financial industry and government. In addition to holding directorship for the U.S. Global Leadership Coalition and The Center for National Policy, he sits on the Chairman’s Advisory Board for the National Democratic Institute (NDI). The NDI is a project of the National Endowment for Democracy (NED), the taxpayer funded organization that does what the CIA did covertly 25 years ago, according to one of its founders, Alan Weinstein.

For more on the role played by NDI, NED, George Soros and the State Department on the overthrow of the elected government of Ukraine and the installation of the current junta led by banker Arseniy Yatsenyuk, see our Nuland Audio Reveals State Department Role in Undermining Ukraine and Wayne Madsen’s Crisis in the Ukraine: USAID Support for Destabilization of Russia.

In March J.P. Sottile wrote about the economic interests of large transnational corporations in Ukraine. In addition to corporate agricultural giant Cargill’s buyout of UkrLandFarming, the world’s eighth-largest land cultivator and second biggest egg producer, Monsanto has expressed a “commitment to Ukraine” and “the importance of creating a favorable environment that encourages innovation and fosters the continued development of agriculture.”

The effort to improve the investment climate for large multinational corporations on the Russian border is spearheaded by the U.S.-Ukraine Foundation, a non-profit NGO funded in part by ExxonMobil, Coca-Cola and Raytheon.

In April Hunter’s father trekked to Ukraine to show support for the junta led in part by fascists and ultra-nationalists. “There are currently ongoing threats to Ukraine’s sovereignty and territorial integrity, and the most effective response to that is for all of Ukraine to pull together,” an Obama administration said prior to Biden’s mission.

Beyond the standard rhetorical flourishes about democracy and freedom, Biden Senior’s trip was about securing a proper investment climate in Ukraine.

From The Washington Post on April 21:

The official said the U.S. energy consulting team will travel from here to Slovakia and Hungary to work on ways of reversing the flow of some of Ukraine’s pipelines now supplying Europe. Over the longer term, the official said, the U.S. government will work with Ukraine to help the government increase domestic gas production.

This article was posted: Tuesday, May 13, 2014 at 11:21 am

Categories: Truth News | Leave a comment

Connecticut Tries to Hide Sandy Hook Truth

original post : http://www.infowars.com/connecticut-tries-to-hide-sandy-hook-truth/

Connecticut Tries to Hide Sandy Hook Truth

  • The Alex Jones Channel Alex Jones Show podcast Prison Planet TV Infowars.com Twitter Alex Jones' Facebook Infowars store

Expert school safety consultant continues being stonewalled at every turn

Adan Salazar
Infowars.com
May 13, 2014

For over a year, former educator, US Customs agent and school safety expert Wolfgang Halbig has been on a painstaking mission to uncover the truth behind what really happened in Newtown, Conn., on December 14, 2012 – the day the world was told 20 schoolchildren and 6 staff members were shot and killed by a 20-year-old weighing just above 110 pounds.

Halbig has narrowed down a list of 16 questions which he has yet been unable to get answered.

Last week, the former school principal and a group of his supporters headed to the crime scene in an effort to bring those questions to the attention of the Newtown Board of Education. Not surprisingly, he was met by a strong police presence and a deluge of negative press that, instead of investigating his research, was more concerned with painting him as a conspiracy loon.

“Do you not teach character education?” a frustrated Halbig asked a room full of school board members. “You used the word ‘honesty’ in your presentation. Where’s the honesty in this room?”

For Halbig, something wasn’t right after homicide investigators were twice sent to his home in Florida to tell him the Conn. State Police were ready to file charges if he didn’t stop looking into the event’s various inconsistencies.

But their visit only served to embolden the retired Florida state trooper, who due to encountering several stonewall efforts remains convinced the shooting was a completely fabricated event geared to mobilize the public’s support behind stricter gun regulations.

And just yesterday, the shooting was cited as the main reason New Jersey is moving to restrict the number of rounds a firearm magazine can hold. “Today we’re taking another step to fulfill a promise that many of us here made to the parents of the children of Sandy Hook Elementary School in Connecticut who suffered losses beyond comprehension,” New Jersey State Senate Majority Leader Loretta Weinberg said following the Senate’s passage of the bill.

sh-schoolboard

For the three minutes he was allotted, Halbig attempted to convince the board he was not there to cause trouble, but to get answers he and the nation, nay the world, desperately need. Board members received him with blank stares. Some of them looked down while he spoke, others seemed bemused and still others sat with guilty, grim expressions written across their faces.

Off the bat, Halbig’s questions evoke a disconcerting feeling, but he insists they should not be offensive “to any parent that lost a child that day,” or to the Conn. State Police.

For instance (and Wolfgang posed this to board members) why were no trauma helicopters ever summoned? “Those are the quickest and the best medical services that any child or any school staff member can receive, and no trauma helicopters were ever requested?” Halbig underscored in a previous interview with American Free Press.

In an interview today with Alex Jones, Halbig argued that the United Way of Western Connecticut’s solicitation for Sandy Hook relief funds prior to the shooting was one of the main smoking guns in the case. See the image of a Google search below:

united-way-google1

Equally suspicious is that several police officers blocked access to the Newtown branch of the United Way when Halbig attempted a visit.

Several police officers were summoned when Halbig attempted to enter the United Way of Newtown. /  Credit: We

Additionally, Halbig questions, why were paramedics not let into the school following the shooting? “Board members these are your children, and you wouldn’t let paramedics and EMT into the building?” Halbig asked.

And why were Port-A-Potties immediately on scene, who predicted their necessity and who requested them? “High priority for toilets but not for Life Star Trauma helicopters or paramedics,” Halbig’s blog Sandy Hook Justice.com highlights.

In an exclusive interview with Infowars’ own Dan Bidondi, Halbig pointed to the fact that none of the parents filed lawsuits against the school as a suspicious gesture. “Guess what, not one parent has filed a lawsuit. This is un-American. In America, we file lawsuits. I was at Columbine, 14 children who died, every parent filed a lawsuit. 23 children were severely shot and severely injured, every parent filed a lawsuit. Why haven’t the parents here in Sandy Hook filed a lawsuit? It’s unimaginable,” Halbig told Bidondi.

Indeed, enough time has passed for answers to be forthcoming and FOIA requests to be responded to, but the town’s eerie silence to Halbig’s questions and the plethora of condescending, stomach-churning hit pieces leads one to assume the state of Connecticut is engaged in a massive coverup.

Below is the list of “SIXTEEN QUESTIONS THAT DEMAND THE TRUTH” from Halbig’s blog. He is asking everyone remained focused in trying to get answers for these questions, as he feels they will reveal what really happened that fateful December day.

1. Who directed the New Haven Federal Bureau of Investigation field office to classify the Sandy Hook Elementary School shooting (SHES)?

2. Why and for what reason would the FBI classify the SHES shooting when they did not classify the Columbine shooting which also was an Active Shooter Mass Casualty Incidents (AS/MCI)?

3. Who on was the Incident Commander as required by the Federal Emergency Management Agency in directing the AS/MCI at SHES?

• Who at the Incident Command Center made the ordering of Port-A-Potties a high priority since they were delivered within three hours of the school shooting?

• Who ordered those Port-A-Potties from Southbury, Connecticut?

• When I called the Port-A-Pottie company, after searching for over a week as to who they were and when they were ordered, I was told this information was classified and they are not allowed to share that information with me.

• The next morning I received a phone call from the Southbury Police Department at my home telling me not to call that company again, since I was harassing them.

• High priority for toilets but not for Life Star Trauma helicopters or paramedics.

4. Who and why did they not request Life Star helicopters, knowing that children and school staff were seriously injured and clinging to life?

5. Who and why did they not allow the paramedics and the EMTs inside SHES?

6. Who declared all 18 children and six school staff members legally dead within the first eight minutes?

7. Who was the Certified Environmental Bio-Hazard Decontamination company contracted by Newtown Public Schools (NPS) to remove 45-65 gallons of blood, skull fragments, brain tissue, bodily fluids, blood-soaked carpets and any other decontaminated area inside SHES?

8. Why does an off-duty lieutenant from the Newtown Police Department (NPD) refuse to leave his off-duty work assignment at a construction site when hearing that shots have been fired at SHES?

9. Who at NPS notified all of the parents in writing, as required by Conn. law, who had children attending SHES, as well as every school staff member, for every school year, of all the potential life threatening chemical hazards? The school had high levels of lead paint throughout the entire school, asbestos in the ceiling and floor tiles, asbestos in the insulation, and most of the school had very high levels of PCBs.

10. Who provided the urgent medical care to the two children who were not transported to the Danbury Trauma Center until an hour after the school was deemed safe for that 15-mile drive?

11. Who treated those two children who had been shot multiple times, like three to 11 times, since they did not allow the paramedics and EMTs inside SHES?

12. Why did the parents of the two children who died at the Danbury hospital not allow their children to donate their organs to other children waiting for the gift of life?

13. What happened to the 500 children and 60 school staff members from SHES on 12/14/2012?

14. Who was the police officer calling into the NPD dispatcher stating, in his words, that he had multiple weapons, a rifle and a shotgun, and who has the rifle and the shotgun, as the chain of evidence should show, that was found in classroom eight (8)?

15. Why would a police officer by the name of Lt. Vangehle, at 9:45:21 a.m. on 12/14/2012, from the NPD, after finding a female kindergartener in the hallway, make her go into room eight (8) and leave her there? Room eight was supposedly the gruesome crime scene with dead children and school staff.

16. Why would two Conn. State Troopers enter room ten (10) at 9:55:31 a.m. on 12/14/2012, which was supposedly the gruesome crime scene with dead children and school staff, and tell a male kindergartener who they found in the bathroom, who’s name is redacted, and tell them (so it must be more than one), to stay and they will both be back when it is safe?

Watch Alex Jones’ interview with Wolfgang Halbig on today’s edition of the Alex Jones Show.

Alex Jones goes on the record with his thoughts and analysis on the Sandy Hook shooting, highlighting some of the major red flags and shedding light on CNN’s proven track record of faking news reports while working with Military Intelligence.

This article was posted: Tuesday, May 13, 2014 at 4:20 pm

Categories: Truth News | Leave a comment

A World War is Beckoning

original post: http://www.infowars.com/a-world-war-is-beckoning/

A world war is beckoning

  • The Alex Jones Channel Alex Jones Show podcast Prison Planet TV Infowars.com Twitter Alex Jones' Facebook Infowars store

John Pilger
May 13, 2014

fredawar

Why do we tolerate the threat of another world war in our name? Why do we allow lies that justify this risk? The scale of our indoctrination, wrote Harold Pinter, is a “brilliant, even witty, highly successful act of hypnosis”, as if the truth “never happened even while it was happening”.

Every year the American historian William Blum publishes his “updated summary of the record of US foreign policy” which shows that, since 1945, the US has tried to overthrow more than 50 governments, many democratically elected; grossly interfered in elections in 30 countries; bombed the civilian populations of 30 countries; used chemical and biological weapons; and attempted to assassinate foreign leaders.

In many cases Britain has been a collaborator. The degree of human suffering, let alone criminality, is little acknowledged in the west, despite the presence of the world’s most advanced communications and nominally freest journalism. That the most numerous victims of terrorism – “our” terrorism – are Muslims, is unsayable. That extreme jihadism, which led to 9/11, was nurtured as a weapon of Anglo-American policy (Operation Cyclone in Afghanistan) is suppressed. In April the US state department noted that, following Nato’s campaign in 2011, “Libya has become a terrorist safe haven”

The name of “our” enemy has changed over the years, from communism to Islamism, but generally it is any society independent of western power and occupying strategically useful or resource-rich territory. The leaders of these obstructive nations are usually violently shoved aside, such as the democrats Muhammad Mossedeq in Iran and Salvador Allende in Chile, or they are murdered like Patrice Lumumba in the Congo. All are subjected to a western media campaign of caricature and vilification – think Fidel Castro, Hugo Chávez, now Vladimir Putin.

Washington’s role in Ukraine is different only in its implications for the rest of us. For the first time since the Reagan years, the US is threatening to take the world to war. With eastern Europe and the Balkans now military outposts of Nato, the last “buffer state” bordering Russia is being torn apart. We in the west are backing neo-Nazis in a country where Ukrainian Nazis backed Hitler. Having masterminded the coup in February against the democratically elected government in Kiev, Washington’s planned seizure of Russia’s historic, legitimate warm-water naval base in Crimea failed. The Russians defended themselves, as they have done against every threat and invasion from the west for almost a century.

But Nato’s military encirclement has accelerated, along with US-orchestrated attacks on ethnic Russians in Ukraine. If Putin can be provoked into coming to their aid, his pre-ordained “pariah” role will justify a Nato-run guerrilla war that is likely to spill into Russia itself.

Instead, Putin has confounded the war party by seeking an accommodation with Washington and the EU, by withdrawing troops from the Ukrainian border and urging ethnic Russians in eastern Ukraine to abandon the weekend’s provocative referendum. These Russian-speaking and bilingual people – a third of Ukraine’s population – have long sought a democratic federation that reflects the country’s ethnic diversity and is both autonomous and independent of Moscow. Most are neither “separatists” nor “rebels” but citizens who want to live securely in their homeland.

Like the ruins of Iraq and Afghanistan, Ukraine has been turned into a CIA theme park – run by CIA director John Brennan in Kiev, with “special units” from the CIA and FBI setting up a “security structure” that oversees savage attacks on those who opposed the February coup. Watch the videos, read the eye-witness reports from the massacre in Odessa this month. Bussed fascist thugs burned the trade union headquarters, killing 41 people trapped inside. Watch the police standing by. A doctor described trying to rescue people, “but I was stopped by pro-Ukrainian Nazi radicals. One of them pushed me away rudely, promising that soon me and other Jews of Odessa are going to meet the same fate… I wonder, why the whole world is keeping silent.”

Russian-speaking Ukrainians are fighting for survival. When Putin announced the withdrawal of Russian troops from the border, the Kiev junta’s defence secretary – a founding member of the fascist Svoboda party – boasted that the attacks on “insurgents” would continue. In Orwellian style, propaganda in the west has inverted this to Moscow “trying to orchestrate conflict and provocation”, according to William Hague. His cynicism is matched by Obama’s grotesque congratulations to the coup junta on its “remarkable restraint” following the Odessa massacre. Illegal and fascist-dominated, the junta is described by Obama as “duly elected”. What matters is not truth, Henry Kissinger once said, but “but what is perceived to be true.”

In the US media the Odessa atrocity has been played down as “murky” and a “tragedy” in which “nationalists” (neo-Nazis) attacked “separatists” (people collecting signatures for a referendum on a federal Ukraine). Rupert Murdoch’s Wall Street Journal damned the victims – “Deadly Ukraine Fire Likely Sparked by Rebels, Government Says”. Propaganda in Germany has been pure cold war, with the Frankfurter Allgemeine Zeitung warning its readers of Russia’s “undeclared war”. For Germans, it is an invidious irony that Putin is the only leader to condemn the rise of fascism in 21st-century Europe.

A popular truism is that “the world changed” following 9/11. But what has changed? According to the great whistleblower Daniel Ellsberg, a silent coup has taken place in Washington and rampant militarism now rules. The Pentagon currently runs “special operations” – secret wars – in 124 countries. At home, rising poverty and hemorrhaging liberty are the historic corollary of a perpetual war state. Add the risk of nuclear war, and the question begs: why do we tolerate this?

This article was posted: Tuesday, May 13, 2014 at 10:53 pm

 

Categories: Truth News | Leave a comment

Military building robots that have morals

original post: http://www.defenseone.com/technology/2014/05/now-military-going-build-robots-have-morals/84325/?oref=d-topstory

 

Now The Military Is Going To Build Robots That Have Morals

Are robots capable of moral or ethical reasoning? It’s no longer just a question for tenured philosophy professors or Hollywood directors. This week, it’s a question being put to the United Nations.

 

The Office of Naval Research will award $7.5 million in grant money over five years to university researchers from Tufts, Rensselaer Polytechnic Institute, Brown, Yale and Georgetown to explore how to build a sense of right and wrong and moral consequence into autonomous robotic systems.

 

“Even though today’s unmanned systems are ‘dumb’ in comparison to a human counterpart, strides are being made quickly to incorporate more automation at a faster pace than we’ve seen before,” Paul Bello, director of the cognitive science program at the Office of Naval Research told Defense One. “For example, Google’s self-driving cars are legal and in-use in several states at this point. As researchers, we are playing catch-up trying to figure out the ethical and legal implications. We do not want to be caught similarly flat-footed in any kind of military domain where lives are at stake.”

 

The United States military prohibits lethal fully autonomous robots. And semi-autonomous robots can’t “select and engage individual targets or specific target groups that have not been previously selected by an authorized human operator,” even in the event that contact with the operator is cut off, according to a 2012 Department of Defense policy directive.

 

“Even if such systems aren’t armed, they may still be forced to make moral decisions,” Bello said. For instance, in a disaster scenario, a robot may be forced to make a choice about whom to evacuate or treat first, a situation where a bot might use some sense of ethical or moral reasoning. “While the kinds of systems we envision have much broader use in first-response, search-and-rescue and in the medical domain, we can’t take the idea of in-theater robots completely off the table,” Bello said.

 

Some members of the artificial intelligence, or AI, research and machine ethics communities were quick to applaud the grant. “With drones, missile defines, autonomous vehicles, etc., the military is rapidly creating systems that will need to make moral decisions,” AI researcher Steven Omohundrotold Defense One. “Human lives and property rest on the outcomes of these decisions and so it is critical that they be made carefully and with full knowledge of the capabilities and limitations of the systems involved. The military has always had to define ‘the rules of war’ and this technology is likely to increase the stakes for that.”

 

“We’re talking about putting robots in more and more contexts in which we can’t predict what they’re going to do, what kind of situations they’ll encounter. So they need to do some kind of ethical reasoning in order to sort through various options,” said Wendell Wallach, the chair of the Yale Technology and Ethics Study Group and author of the book Moral Machines: Teaching Robots Right From Wrong.

 

The sophistication of cutting-edge drones like British BAESystems’s batwing-shaped Taranis and Northrop Grumman’s X-47B reveal more self-direction creeping into ever more heavily armed systems. The X-47B, Wallach said, is “enormous and it does an awful lot of things autonomously.”

 

But how do you code something as abstract as moral logic into a bunch of transistors?  The vast openness of the problem is why the framework approach is important, says Wallach. Some types of morality are more basic, thus more code-able, than others.

 

“There’s operational morality, functional morality, and full moral agency,” Wallach said. “Operational morality is what you already get when the operator can discern all the situations that the robot may come under and program in appropriate responses… Functional morality is where the robot starts to move into situations where the operator can’t always predict what [the robot] will encounter and [the robot] will need to bring some form of ethical reasoning to bear.”

 

It’s a thick knot of questions to work through. But, Wallach says, with a high potential to transform the battlefield.

 

“One of the arguments for [moral] robots is that they may be even better than humans in picking a moral course of action because they may consider more courses of action,” he said.

 

Ronald Arkin, an AI expert from Georgia Tech and author of the book Governing Lethal Behavior in Autonomous Robots,  is a proponent of giving machines a moral compass. “It is not my belief that an unmanned system will be able to be perfectly ethical in the battlefield, but I am convinced that they can perform more ethically than human soldiers are capable of,” Arkin wrote in a 2007 research paper (PDF). Part of the reason for that, he said, is that robots are capable of following rules of engagement to the letter, whereas humans are more inconsistent.

 

AI robotics expert Noel Sharkey is a detractor. He’s beenhighly critical of armed drones in general. and has arguedthat autonomous weapons systems cannot be trusted to conform to  international law.

 

“I do not think that they will end up with a moral or ethical robot,” Sharkey told Defense One. “For that we need to have moral agency. For that we need to understand others and know what it means to suffer. The robot may be installed with some rules of ethics but it won’t really care. It will follow a human designer’s idea of ethics.”

 

“The simple example that has been given to the press about scheduling help for wounded soldiers is a good one. My concern would be if [the military] were to extend a system like this for lethal autonomous weapons – weapons where the decision to kill is delegated to a machine; that would be deeply troubling,” he said.

 

This week, Sharkey and Arkin are debating the issue of whether or not morality can be built into AI systems before theU.N. where they may find an audience very sympathetic to the idea that a moratorium should be placed on the further development of autonomous armed robots.

 

Christof Heyns, U.N. special rapporteur on extrajudicial, summary or arbitrary executions for the Office of the High Commissioner for Human Rights, is calling for a moratorium. “There is reason to believe that states will, inter alia, seek to use lethal autonomous robotics for targeted killing,” Heyns said in an April 2013 report to the U.N.

 

The Defense Department’s policy directive on lethal autonomy offers little reassurance here since the department can change it without congressional approval, at the discretion of the chairman of the Joint Chiefs of Staff and two undersecretaries of Defense. University of Denver scholar Heather Roff, in an op-ed for the Huffington Post, calls that a “disconcerting” lack of oversight and notes that “fielding of autonomous weapons then does not even raise to the level of the Secretary of Defense, let alone the president.”

If researchers can prove that robots can do moral math, even if in some limited form, they may be able to diffuse rising public anger and mistrust over armed unmanned vehicles. But it’s no small task.

 

“This is a significantly difficult problem and it’s not clear we have an answer to it,” said Wallach. “Robots both domestic and militarily are going to find themselves in situations where there are a number of courses of actions and they are going to need to bring some kinds of ethical routines to bear on determining the most ethical course of action. If we’re moving down this road of increasing autonomy in robotics, and that’s the same as Google cars as it is for military robots, we should begin now to do the research to how far can we get in ensuring the robot systems are safe and can make appropriate decisions in the context they operate.”

(Image by Sarah Holmlund via Shutterstock)

Categories: Truth News | Leave a comment

NSA info release : America putting Isreali security ahead of its own

original post: http://www.infowars.com/new-snowden-document-implies-nsa-may-be-putting-israels-security-ahead-of-americas/

 

New Snowden Document Implies NSA May Be Putting Israel’s Security Ahead of America’s

  • The Alex Jones Channel Alex Jones Show podcast Prison Planet TV Infowars.com Twitter Alex Jones' Facebook Infowars store

Washington’s Blog
May 14, 2014

The following leaked slide from Edward Snowden was released today by Glenn Greenwald in his new book, No Place to Hide:

If you can’t read the slide, it says:

Balancing the SIGINT exchange equally between US and Israeli needs has been a constant challenge in the last decade, it arguably tilted heavily in favor of Israeli security concerns. 9/11 came, and went, with NSA’s only true Third Party CT relationship being driven almost totally by the needs of the partner.

That is a stunning statement. It implies that the signals intelligence exchange between the American and Israeli governments has been driven almost entirely by the NSA giving information to the Israelis, instead of Israel giving information to the U.S.  … even though we were the ones attacked on 9/11.

Remember, the raw data in American citizens collected by the NSA is shared with Israel. As the Guardian reported in September:

The National Security Agency routinely shares raw intelligence data with Israel without first sifting it to remove information about US citizens, a top-secret document provided to the Guardian by whistleblower Edward Snowden reveals.

***

According to the agreement, the intelligence being shared would not be filtered in advance by NSA analysts to remove US communications. “NSA routinely sends ISNU [the Israeli Sigint National Unit] minimized and unminimized raw collection”, it says.

***

A much stricter rule was set for US government communications found in the raw intelligence. The Israelis were required to “destroy upon recognition” any communication “that is either to or from an official of the US government“. Such communications included those of “officials of the executive branch (including the White House, cabinet departments, and independent agencies), the US House of Representatives and Senate (member and staff) and the US federal court system (including, but not limited to, the supreme court)”.

This not only raises major privacy concerns for American citizens, but it might mean that Israel is spying on the American Congress and other high-level politicians.

We have nothing against Israel, but – as American citizens – we want our intelligence agencies to put the American people and American security first.

This article was posted: Wednesday, May 14, 2014 at 5:46 am

Categories: Truth News | Leave a comment

Transhumanists think we can be like God

original post: http://www.infowars.com/transhumanists-superhuman-powers-and-life-extension-technologies-will-allow-us-to-become-like-god/

 

Transhumanists: Superhuman Powers & Life Extension Tech Will Allow Us To Become Like God

  • The Alex Jones Channel Alex Jones Show podcast Prison Planet TV Infowars.com Twitter Alex Jones' Facebook Infowars store

Michael Snyder
American Dream
May 14, 2014

If you could merge your current mind and body with technology that would give you superhuman powers and would allow you to live forever, would you do it?  This is essentially what the transhumanism movement is seeking to accomplish.

Image: Transhumanism (Wiki Commons).

Transhumanists envision a day when technology will allow humanity to become so advanced that sickness, disease, poverty and war will essentially be eradicated.  They believe that merging with machines will permit us to become trillions of times more intelligent than we are today, and they also believe that radical life extension technologies will make it possible for humanity to actually achieve immortality.  Many transhumanists are convinced that such a world can be achieved within their lifetimes.  They point to Moore’s Law and to the fact that technology already appears to be growing at an exponential rate.  As the technology curve continues to steepen, transhumanists believe that our world will rapidly become transformed into a place that would be unrecognizable to us today.  Just a few decades from now, transhumanists believe that superhuman powers and extremely advanced life extension technologies will allow them to essentially become like gods.

The key moment that most transhumanists are looking forward to is known as “the Singularity”.  That is the moment when artificial intelligence will actually surpass human intelligence and a massive technological chain reaction will be triggered.  At that time, most transhumanists believe that biological intelligence will merge with non-biological intelligence and humanity will become vastly more intelligent than it is today.  During this transition, society will be fundamentally transformed

After the Singularity occurs, it is predicted that vast changes will sweep through society; changes so drastic that they are nearly inconceivable at the present time. Experts in the movement say that after the Singularity, indefinite human life extension will rapidly become the norm. Many scientists working in this field are particularly interested in the concept of achieving immortality.

To most people, the idea of achieving immortality in our decaying physical bodies would sound absolutely ridiculous.

But transhumanists are very serious about this.

One way they are seeking to accomplish this is by searching for a method that will enable them to store the human mind on a computer.  If your entire consciousness could be “uploaded” into a computer, it could conceivably later be downloaded into a futuristic avatar of some sort once that technology has been developed.

But that is not the only life extension technology that transhumanists are working on.  Some other examples include embedding nanobots in our bodies and brains and eliminating diseases through the process of “genetic reprogramming”…

Other futurists and transhumanists are working toward improving longevity through more biological means, such as growing new organs from stems cells, replacing worn out parts of the body with high-tech updated models, and curing diseases through genetic reprogramming. A third method of achieving a transhuman state of being may come through merging the biological and non biological in equal measure, such as embedding nano robots into the bloodstream and brain; and replacing atoms with nano computers to solve the degeneration that comes with aging.

According to transhumanists, not only will we be able to live much longer, but our quality of life will also be so much better in the future.  The following is how one transhumanist envisions what life will be like in the 2050s

Robots have become an important family acquisition. Ability to replicate self-assembling robot parts in nanofactories, make these machines easily available and affordable. By 2050, technologies advancing at “Moore’s Law” speeds have produced an android-like creature nearly indiscernible from a human.

Programmed with Internet-downloaded software, 2050s household robots cater to our every whim. They also manage the nanorobots that whiz through our veins keeping us healthy 24/7, and monitor our safety when we connect to simulation events that whisk us away in a Star Trek Holodeck-like adventure.

That sounds wonderful doesn’t it?

But how will we earn the money to pay for all of those things?

If robots are so advanced at that point, why would companies even need human workers?

Or will we have to “enhance” ourselves with technology just to be useful in the workforce?

In a recent article by Andrew Smart, he suggests that these “enhancements” could just turn us into “better slaves”…

Could it be that we’ve been tricked into pouring our innovative energy into making ourselves better slaves? If the digital elite achieves its dream of a perfect union with machines, what becomes of the rest of us who either can’t afford cyborgification or who actually enjoy life as a regular human being? Would one Singularitized human be expected to handle the workload of 100 unenhanced workers? Robots will have of course taken the rest of the jobs.

In fact, robots are already taking our jobs at a staggering pace.  This is even happening in low wage countries such as China

Chinese company Hon Hai, the world’s largest contract electronics manufacturer, has announced it intends to build a robot-making factory and replace 500,000 workers with robots over the next three years.

But transhumanists are not really concerned with such matters.  They insist that we will become so intelligent that we will easily figure out the solutions to such social issues.

Yes, most transhumanists concede that there will be bumps on the road to utopia, but they argue that it would be foolish not to “take control of our own evolution”.  They believe that we can use science and technology to guide the evolution of society and that this will create a far better world than we have today.  The following is what one participant stated at a recent conference about transhumanism and religion

Transhumanism is a thrust toward transcendence. It is not classical mysticism but seeks a temporal transcendence The driving force behind this is evolution…

What is reality? Reality is evolution. It has a direction from the simple to the complex; the most complex [outcome] is intelligence. Thus evolution is aimed at intelligence.

We should thus have a will to evolve. We have a moral responsibility to increase evolution and do so by continually striving to expand our abilities throughout life by acting in harmony with the evolutionary process…

Science and technology move us toward Utopia. One of the most exciting things about transhumanism is that all will be fixed.

That all sounds so alluring.

After all, who wouldn’t want to live in a “utopia” where everything that is currently wrong with our planet has been “fixed”?

But transhumanists don’t just stop there.  They believe that eventually we will possess such superhuman powers and will enjoy such radical life extension technologies that we will essentially be like God.

The most famous transhumanist on the globe, Ray Kurzweil, takes 150 vitamin supplements a day in an attempt to extend his life until more advanced life extension technologies can be developed.  In chapter 7 of “The Singularity Is Near: When Humans Transcend Biology”, he expresses his belief that evolution and technology are systematically moving us in the direction of becoming more like God…

“Evolution moves toward greater complexity, greater elegance, greater knowledge, greater intelligence, greater beauty, greater creativity, and greater levels of subtle attributes such as love. In every monotheistic tradition God is likewise described as all of these qualities, only without any limitation: infinite knowledge, infinite intelligence, infinite beauty, infinite creativity, infinite love, and so on. Of course, even the accelerating growth of evolution never achieves an infinite level, but as it explodes exponentially it certainly moves rapidly in that direction. So evolution moves inexorably toward this conception of God, although never quite reaching this ideal. We can regard, therefore, the freeing of our thinking from the severe limitations of its biological form to be an essentially spiritual undertaking.”

Transhumanist Mark Pesce is even more extreme.  He openly states that he believes that transhumanism will allow us “to become as gods”

“Men die, planets die, even stars die. We know all this. Because we know it, we seek something more—a transcendence of transience, translation to incorruptible form. An escape if you will, a stop to the wheel. We seek, therefore, to bless ourselves with perfect knowledge and perfect will; To become as gods, take the universe in hand, and transform it in our image—for our own delight. As it is on Earth, so it shall be in the heavens. The inevitable result of incredible improbability, the arrow of evolution is lipping us into the transhuman – an apotheosis to reason, salvation – attained by good works.”

And what transhumanist Dr. Richard Seed has to say about all of this is quite frightening.  He warns of “warfare” if anyone tries to prevent him from becoming a god…

If you want to get an idea of where transhumanists want to take us, just check out the YouTube video posted below.  It was produced by “the 2045 Initiative”, and as you can see, they believe that the world will be infinitely superior in the year 2045 than it is today

So what do you think about all of this?

Categories: Truth News | Leave a comment

Design a website from scratch : pt2

original post: http://code.tutsplus.com/tutorials/design-and-code-a-slick-website-from-scratch-%E2%80%93-part-ii–net-5153

 

Design and Code a Slick Website From Scratch – Part II

by 29 May 2009139 Comments

With the Internet becoming more and more popular every minute, a great-looking website is somewhat of a must-have. You could obviously pay a web designer to design one for you, but wouldn’t it be really cool to design and code it yourself? “Difficult”, you may say; but it’s actually not too hard once you’ve learned how to do it!

In this second part of the tutorial, we will code our design into a standards-compliant, cross-browser xHTML, CSS, and JavaScript/jQuery layout. Fire up Coda, or your editor of choice… it’s coding time!

 


Step One – What We Will Be Making

You might think that we’ll simply use our previously designed layout as some kind of base and then code a much less complex design in order to make things simpler for us, but that is not the case! At the end of this tutorial, this is what your layout will look like in a browser:

Note that this is not a Photoshop version but the actual result in Firefox. It was taken using the Screengrab! Plugin, so this is exactly what you will see once finished.

Some considerations about the design:

  • The slideshow fully works with smooth transitions
  • The heading are not images
  • The CSS is valid with both the 2.1 and 3.0 specifications
  • The xHTML validates with a strict 1.0 Doctype

Step Two – Requirements

Even though I’ll try to be as clear and concise as possible throughout this tutorial, saying that a complete beginner could follow and understand these would be wishful thinking. Sure, copy & pasting is possible, but to understand all the explanations, you’ll need to have some knowledge of web techniques:

  • A solid knowledge of both HTML and CSS is strongly recommended, but you’ll probably manage to follow knowing just the basics as well
  • An idea of how JavaScript, and more precisely jQuery, works is important

If you don’t know anything about those things you can always go ahead and learn them. Here are some useful links to do so:

Step Three – Setting Up Our Developer Environment

In this part of the tutorial, I’ll just try to explain my way of doing things when I’m coding a web site. The first and probably most important thing is about your tools. What apps are you going to use to code, to debug, to test?

In my case, Dreamweaver is the choice for code. “Oh gosh, just another WYSIWYG web developer”, you might think, but the answer is no, I don’t use the WYSIWYG mode. I use Dreamweaver because I simply love its auto-completion features and its syntax highlighting. If you don’t feel like paying 799$ for an application however, there are a number of great code editors out there for free or for a whole lot less. I’m thinking about Coda, Text Mate, Espresso or CSS Edit for Mac OS X, and Aptana Studio, Notepad++ or E Text Editor for Windows. You could obviously just use Notepad or Text Edit, but why do so when so many great tools are available free?

The next thing we need to choose is a development browser. We need a browser with great debugging tools. Even though I’m a hard-core Opera user in everyday life, I use Firefox during my development cycles because of its outstanding tool: Firebug. Sure, Opera has Dragonfly, and Safari 4 is shipped with some great tools as well, but Firebug is still one step ahead, and this makes me choose Firefox as my development browser. You should be sure to use a standard-compliant browser in any case. In other words, do not use Internet Explorer as your main testing environment. Even though my choice is Firefox for testing during the development cycle, I have all the recent browsers installed on my computer to check that everything works just fine on all of them. My designs are therefore tested in Firefox 3+, Opera 9.5+, Safari 3+, Chrome 1+, and Internet Explorer 7+. This way, they should be correctly displayed for about 95% of the internet users. * Editor’s note: this figure will vary considerably depending on the target audience of the site.

Okay, now that we’ve got the tools to work with, we also need a directory structure. In order to keep things clear, I’ve decided to create a new “site” on my local server just by creating a new folder in the www/ folder. I’m using WAMP as my localhost. Within this site, we will need to create three folders, js/, css/, and img/. I guess the names are pretty self-explanatory.

Now that we have our environment set up, we can start coding!

Step 4 – The xHTML

I’ve already mentioned it, but in this tutorial, we will be sure to build valid xHTML. What does that mean?

Most pages on the World Wide Web are written in computer languages (such as HTML) that allow Web authors to structure text, add multimedia content, and specify what appearance, or style, the result should have.

As for every language, these have their own grammar, vocabulary and syntax, and every document written with these computer languages are supposed to follow these rules. […]

However, Just as texts in a natural language can include spelling or grammar errors, documents using Markup languages may (for various reasons) not be following these rules. […]

With these concepts in mind, we can define “markup validation” as the process of checking a Web document against the grammar (generally a DTD) it claims to be using.

W3C Validation Service

But why even bother validating a page? Well, there are a few advantages, the first one being SEO. Google’s crawler gives better ranking to valid pages. The second one is accessibility. People who are using screen readers may not be able to see your site correctly if your markup is invalid. Last, but not least, the ability to produce valid code is something showing that you’re not a simple Sunday-coder.

What we must do now is think a bit of how we are going to structure our design, which tags we are going to use, the IDs we are going to give them, etc. Here’s what I’ve come up with:

Now that we know what we are going to produce, let’s start by defining the basics of our document!

The Basics

I’ve already told you that we are going to use xHTML Strict. This means we have to keep our structure logic separated from our layout logic. In order to tell the browser what “grammar” we are using, we need to define a so-called DTD or Document Type Definition. The xHTML 1.0 Strict Doctype looks like this:

1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

This code should be put first in all your HTML files. The lack of such a definition will result in a failed validation.

Next, we just need to define the basics of our page: the head and the body. You’ll want a title tag in your head section in order to display a correct name in the browser’s title bar instead of something like “Untitled 1″. I decided to put some meta-tags as well for SEO, even though we all know they are not so useful today.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="keywords" content="Roadside, Studio, Design, Web, Icons, Logos" />
        <meta name="description" content="Roadside Studio is a web design agency that makes beautiful websites!" />
        <meta name="author" content="Felix Boyeaux" />
        <meta name="robots" content="all" />
        <title>Roadside Studio</title>
    </head>
    <body>
        <!-- The content will go here -->
    </body>
</html>

Once this is done, we can start coding the actual content.

The Status Bar

Remember how I made you create a whole bunch of layer groups and rename them to something that reflected their function? Well you’ll now understand why. Take a look at this layer palette:

Can you see what I mean now? Indeed, this gives us the structure of our HTML: we’ve got a wrapping folder called Status Bar, in which we have subfolders. Those folders represent the block elements of our page! However, this is not foolproof. Experience demonstrates that we need some more wrapping blocks in order to centre the content of the bar and still have the bar’s background take up 100% of the width. We also need a wrapper around the welcome message and the action bar in order to make the search field float on the right. This is what your code should look like:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<div id="status-bar">
    <div id="status-bar-content">
        <form action="#search" method="post" id="search-form">
            <p>
                <input type="text" name="query" value="Search" />
                <input type="submit" name="submit" value="Search!" />
            </p>
        </form>
        <div id="status-bar-commands">
            <p id="welcome">Welcome, Guest</p>
            <p id="action-bar">
                <a href="#login" title="Login">Login</a>
                <a href="#sitemap" title="Sitemap">Sitemap</a>
                <a href="#license" title="License">License</a>
            </p>
        </div>
    </div>
</div>

The Div tag with an ID of status-bar is our wrapping block, as you may have understood. The status-bar-content block is needed to centre the content of this bar. You should also notice the paragraph tags inside the form tags. This is needed for xHTML 1.0 Strict to validate. The last important thing to think of in this code snippet is the fact that we did not replace our paragraph tags with divs. This is what web designers call semantic coding. A paragraph should always be wrapped in

tags to emphasis the fact that it is readable text. This also makes things easier for screen readers to read.

Great! That was it for the status bar. Not so complicated, huh? The key is to proceed logically from the layer hierarchy in our PSD in order to build our markup the right way. Just keep in mind to keep your HTML semantic. Use paragraph tags for paragraphs, blockquotes for quotes obviously, and so on.

The Header

We will need to take a look at the layer palette to have an idea of how to build it. This is what we’ve got for the header:

Now let’s translate this structure into code. We’ll need a wrapper, a logo block, and two text blocks: one for the header, one for the subtitle. However, in this case we won’t use paragraph tags. Why not? Well simply because we can be even more semantic than that, using header tags. Since the header text is the first heading in our document, we’ll wrap it with an h1 tag. The subtitle is going to be an h2 tag considering it is the second heading in our document.

1
2
3
4
5
6
<div id="header">
    <div id="logo">
        <h1><a href="#home" title="Home Page">Roadside</a></h1>
        <h2>Studio</h2>
    </div>
</div>

One thing we did here was add a link to the home page on the logo. This is a convention that pretty much every web designer use. It is also well known from the users, so not offering such a link could cause some confusion with your readers. Other than that, there isn’t more to say about this part of the design, so let’s just proceed to the content part.

The Tabs

Before starting with the actual tabs, we’ll need to add a wrapping div with an id of content to contain the tabs, the page wrapper, and both the twitter and the blog module. Once that is done, we’ll have to think a little bit about the menu and how it is going to be structured. The best way to code a menu is probably an unordered list, even though we want a horizontal menu. Why a list? Well list are good for displaying items with the same value, without emphasizing some and not others. This is exactly what we want. In each list item, we obviously add an anchor tag. This anchor link doesn’t link to anything real; the href attribute is just equal to #home for our tutorial.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
<div id="content">
    <ul id="tabs">
        <li id="previous">
            <a href="#previous" title="Previous">&lt;</a>
        </li>
        <li id="home" class="current">
            <a href="#home" title="Home">Home</a>
        </li>
        <li id="portfolio">
            <a href="#portfolio" title="Portfolio">Portfolio</a>
        </li>
        <li id="about">
            <a href="#about" title="About">About</a>
        </li>
        <li id="contact">
            <a href="#contact" title="Contact">Contact</a>
        </li>
        <li id="next">
            <a href="#next" title="Next">&gt;</a>
        </li>
    </ul>
</div>

You should notice that we didn’t wrap our tabs up in a div with an id of tabs, simply because the ul tag does this for us already. You should always try to remove as many unnecessary div blocks as possible in order to make the page faster and cleaner. You may also ask yourselves what &lt; and &gt; stands for. Well it stands for “lower than”, and gt for “greater than” and those are simply the HTML values for < and >.

Don’t worry too much about the fact that our horizontal tab menu is a vertical list for the moment; we’ll make sure that it’ll look appropriate when we write our CSS.

The Wrapper

The “wrapper” is what I call the box with the slideshow and the welcome message. We’ll create a div with an ID of “page-wrapper” to be sure that the box will be correctly defined. This div is obviously nested in the content div too.

Now we need to code the slideshow part. We’ll create a container with an ID of “slideshow”. Inside this, we create a div called “slides” which is going to contain all the images we want to cycle through. There’s also a link around them in order to redirect the reader to the portfolio section of the site. The div with an ID of “slideshow-commands” contains previous and next commands, and the title of the current slide.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<div id="page-wrapper">
    <div id="slideshow">
        <div id="slides">
            <a href="#portfolio.work1" title="See details" class="thumb default-slide">
                <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/./img/slideshow/1.png" alt="Flex Engine Web Design" class="slideshow-image" />
            </a>
            <a href="#portfolio.work2" title="See details" class="thumb">
                <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/./img/slideshow/2.png" alt="Concept Labs Portfolio" class="slideshow-image" />
            </a>
            <a href="#portfolio.work3" title="See details" class="thumb">
                <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/./img/slideshow/3.png" alt="Everlast Studio" class="slideshow-image" />
            </a>
        </div>
        <div id="slideshow-commands">
            <a href="#previous" title="Previous" id="previous-slide">&lt;</a>
            <a href="#next" title="Next" id="next-slide">&gt;</a>
            <h4>
                <a href="#portfolio.work1" title="See details" id="slide-title">
                    Flex Engine Web Design
                </a>
            </h4>
        </div>
    </div>
</div>

The important thing here is the way we added all our slide images in a container to make the sliding easier. However, we need to have a default slide. In this case, I’ve added a class “default-slide” to the anchor containing the default image. To make styling easier, just add a class “thumb” to those images as well. Multiple classes can be set to one element by separating them with spaces. The alt attribute on the images is mandatory for a valid code. It will also be important for our slideshow since this is where we’ll fetch the title of the slide.

The next step of this “page-wrapper” is the displayed message and the contact information. This one will be pretty easy. We need a heading, which is going to be an h3 because it’s our third heading on the page, a paragraph tag containing the message itself, and a paragraph tag containing the contact info.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
<div id="message">
    <h3>We build great websites!</h3>
    <p>
        Curabitur nec sem in risus adipiscing feugiat. Etiam elementum malesuada purus.
        Quisque nec mi eu mauris ornare aliquam. Praesent adipiscing,
        metus sed luctus condimentum, quam turpis interdum tortor,
        in dignissim magna urna tempor odio. Integer porttitor. Nam dolor urna,
        ultricies vitae, porttitor ut, dignissim vitae, elit.
    </p>
    <p id="contact-info">
        <span id="phone">+33 1 23 45 67 89</span>
        <span id="address">
            34, Avenue des Champs-<br />
            Elysées, 75006, Paris,<br />
            France
        </span>
    </p>
</div>

Just notice how we put span tags around the phone number and the address to be able to style them separately. Don’t forget that new lines in your code have no influence whatsoever on the text that is printed on the screen. We can use this to make our code beautiful, and indent the paragraph correctly.

Once this is done, it’s time for a little break to look at what we’ve done. This is the entire code so far:

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="keywords" content="Roadside, Studio, Design, Web, Icons, Logos" />
        <meta name="description" content="Roadside Studio is a web design agency that makes beautiful websites!" />
        <meta name="author" content="Felix Boyeaux" />
        <meta name="robots" content="all" />
        <title>Roadside Studio</title>
    </head>
    <body>
        <!-- STATUS BAR -->
        <div id="status-bar">
            <div id="status-bar-content">
                <form action="#search" method="post" id="search-form">
                    <p>
                        <input type="text" name="query" value="Search" />
                        <input type="submit" name="submit" value="Search!" />
                    </p>
                </form>
                <div id="status-bar-commands">
                    <p id="welcome">Welcome, Guest</p>
                    <p id="action-bar">
                        <a href="#login" title="Login">Login</a>
                        <a href="#sitemap" title="Sitemap">Sitemap</a>
                        <a href="#license" title="License">License</a>
                    </p>
                </div>
            </div>
        </div>
        <!-- HEADER -->
        <div id="header">
            <div id="logo">
                <h1><a href="#home" title="Home Page">Roadside</a></h1>
                <h2>Studio</h2>
            </div>
        </div>
        <!-- CONTENT -->
        <div id="content">
            <!-- TABS -->
            <ul id="tabs">
                <li id="previous">
                    <a href="#previous" title="Previous">&lt;</a>
                </li>
                <li id="home" class="current">
                    <a href="#home" title="Home">Home</a>
                </li>
                <li id="portfolio">
                    <a href="#portfolio" title="Portfolio">Portfolio</a>
                </li>
                <li id="about">
                    <a href="#about" title="About">About</a>
                </li>
                <li id="contact">
                    <a href="#contact" title="Contact">Contact</a>
                </li>
                <li id="next">
                    <a href="#next" title="Next">&gt;</a>
                </li>
            </ul>
            <!-- PAGE WRAPPER -->
            <div id="page-wrapper">
                <!-- SLIDESHOW -->
                <div id="slideshow">
                    <div id="slides">
                        <a href="#portfolio.work1" title="See details" class="thumb default-slide">
                            <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/./img/slideshow/1.png" alt="Flex Engine Web Design" class="slideshow-image" />
                        </a>
                        <a href="#portfolio.work2" title="See details" class="thumb">
                            <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/./img/slideshow/2.png" alt="Concept Labs Portfolio" class="slideshow-image" />
                        </a>
                        <a href="#portfolio.work3" title="See details" class="thumb">
                            <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/./img/slideshow/3.png" alt="Everlast Studio" class="slideshow-image" />
                        </a>
                    </div>
                    <div id="slideshow-commands">
                        <a href="#previous" title="Previous" id="previous-slide">&lt;</a>
                        <a href="#next" title="Next" id="next-slide">&gt;</a>
                        <h4>
                            <a href="#portfolio.work1" title="See details" id="slide-title">
                                Flex Engine Web Design
                            </a>
                        </h4>
                    </div>
                </div>
                <!-- MESSAGE -->
                <div id="message">
                    <h3>We build great websites!</h3>
                    <p>
                        Curabitur nec sem in risus adipiscing feugiat. Etiam elementum malesuada purus.
                        Quisque nec mi eu mauris ornare aliquam. Praesent adipiscing,
                        metus sed luctus condimentum, quam turpis interdum tortor,
                        in dignissim magna urna tempor odio. Integer porttitor. Nam dolor urna,
                        ultricies vitae, porttitor ut, dignissim vitae, elit.
                    </p>
                    <p id="contact-info">
                        <span id="phone">+33 1 23 45 67 89</span>
                        <span id="address">
                            34, Avenue des Champs-<br />
                            Elysées, 75006, Paris,<br />
                            France
                        </span>
                    </p>
                </div>
            </div>
        </div>
    </body>
</html>

You can check its validity now at http://validator.w3.org/ and see that it is valid. Good, we can now continue with the coding of the modules.

The Blog Module

The code is pretty straightforward here. We’ll need to add a containing div with an ID of “blog” and a class of “module” to be able to style the two modules together since they are pretty much the same. The heading will be an h4 whereas titles will be h5. This will make a clear outline with a solid hierarchy in our document. The last thing to consider here is the few lines of each entry. We will put it in blockquotes tags. Why? Well even though it isn’t a proper quote, it is still text taken from another part of the web site, so it is actually appropriate to use blockquotes here. We also just put a ‘Read More’ link wrapped in a paragraph tag to make things valid.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<div class="module" id="blog">
    <h4 class="module-header-bar">Latest entries from the blog</h4>
    <div class="blog-entry">
        <h5><a href="#blogentry1" title="Vivamus sed risus">Vivamus sed risus</a></h5>
        <p class="meta">By Jonathan Davidson - 05 / 08 / 09</p>
        <blockquote class="content">
            <p>
                Vivamus sed risus quis felis sagittis cursus. Duis blandit tristique turpis. Nulla feugiat vehicula metus.
            </p>
        </blockquote>
    </div>
    <div class="blog-entry">
        <h5><a href="#blogentry2" title="Pellentesque pulvinar">Pellentesque pulvinar</a>
        </h5>
        <p class="meta">By The Team - 05 / 01 / 09</p>
        <blockquote class="content">
            <p>
                Pellentesque pulvinar dolor nec orci. Pellentesque scelerisque elit.
            </p>
        </blockquote>
    </div>
    <div class="blog-entry">
        <h5><a href="#blogentry3" title="Cras in nibh">Cras in nibh</a></h5>
        <p class="meta">By Nicholas Denman - 05 / 01 / 09</p>
        <blockquote class="content">
            <p>
                Quisque dapibus, justo a bibendum pellentesque, tellus felis cursus libero, posuere sodales diam ipsum in lorem.
            </p>
        </blockquote>
    </div>
    <p id="read-more-wrapper">
        <a href="#blog" title="Read More">
            Read More
        </a>
    </p>
</div>

You should see that we’ve added paragraph tags within the blockquotes. This is something obligatory to pass validation. Instead of adding Ids to all entry elements, we added classes, to be able to put them several times. You’ll therefore see a paragraph with an ID of “meta” or a blockquote with a class of “content” for instance. Each entry is wrapped in its own div as well just to make spacing easier.

The Twitter Module

The Twitter module will be similar to the blog module, so I’ll go over this more quickly. Just remember that the structure behind the HTML we’re coding is give by our layer palette. In this case, for example, this is what the Twitter Module layer group looks like:

We’ll therefore need a header bar wrapper, and containers for each tweet, but also a block containing the button. This is what the code would look like:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<div class="module" id="twitter">
    <h4 class="module-header-bar">Follow the Roadside Team on Twitter</h4>
    <div class="tweet">
        <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/img/team/1.png" alt="Jonathan Davidson" />
        <h5><a href="#@JonathanDavidson" title="Jonathan Davidson">Jonathan Davidson</a></h5>
        <blockquote>
            <p>
                Proin et libero. Curabitur molestie mauris eu massa.
            </p>
        </blockquote>
    </div>
    <div class="tweet">
        <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/img/team/2.png" alt="Nicholas Denman" />
        <h5><a href="#@NicholasDenman" title="Nicholas Denman">Nicholas Denman</a></h5>
        <blockquote>
            <p>
                Etiam felis ligula.
            </p>
        </blockquote>
    </div>
    <div class="tweet">
        <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/img/team/3.png" alt="Jessica Marshall" />
        <h5><a href="#@JessicaMarshall" title="JessicaMarshall">Jessica Marshall</a></h5>
        <blockquote>
            <p>
                Pellentesque est massa, posuere eu.
            </p>
        </blockquote>
    </div>
    <div class="tweet">
        <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/img/team/4.png" alt="Ann De Wever" />
        <h5><a href="#@AnnDeWever" title="Ann De Wever">Ann De Wever</a></h5>
        <blockquote>
            <p>
                Nulla facilisi. Nam lacinia tristique ante.
            </p>
        </blockquote>
    </div>
    <p id="get-tweets-wrapper">
        <a href="#twitter">
            Get More Tweets!
        </a>
    </p>
</div>

Nothing surprising here, we still use blockquotes for the content of the tweet. We are also linking to the twitter page through the h5. We are also using the same syntax for the “Get More Tweets” link as we did for the Read More link.

The Footer

The last part of our HTML document is going to be the footer. It is going to be very easy to build. We just need a wrapper with an ID of “footer”, another containing div for the image, and a paragraph for our legal notice and company name.

<div id="footer">
	<div id="footer-image"></div>
	<p id="footer-text">
		Copyright © 2009 Roadside Studio<br />
		All Rights Reserved
	</p>
</div>

Really nothing too fancy there. Just notice that we replaced the copyright symbol with © because it wouldn’t display correctly otherwise.

Finished

Okay, well believe it or not, but we are actually done with our markup. You’ve realised that it is actually not that hard to produce correct and valid HTML code just by following some layer groups. The key is to proceed logically and slowly, to be sure not to miss anything.

This is the code we’ve made:

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082
083
084
085
086
087
088
089
090
091
092
093
094
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="keywords" content="Roadside, Studio, Design, Web, Icons, Logos" />
        <meta name="description" content="Roadside Studio is a web design agency that makes beautiful websites!" />
        <meta name="author" content="Felix Boyeaux" />
        <meta name="robots" content="all" />
        <link rel="stylesheet" media="screen" type="text/css" title="Style" href="css/style.css" />
        <title>Roadside Studio</title>
    </head>
    <body>
        <!-- STATUS BAR -->
        <div id="status-bar">
            <div id="status-bar-content">
                <form action="#search" method="post" id="search-form">
                    <p>
                        <input type="text" name="query" value="Search" />
                        <input type="submit" name="submit" value="Search!" />
                    </p>
                </form>
                <div id="status-bar-commands">
                    <p id="welcome">Welcome, Guest</p>
                    <p id="action-bar">
                        <a href="#login" title="Login">Login</a>
                        <a href="#sitemap" title="Sitemap">Sitemap</a>
                        <a href="#license" title="License">License</a>
                    </p>
                </div>
            </div>
        </div>
        <!-- HEADER -->
        <div id="header">
            <div id="logo">
                <h1><a href="#home" title="Home Page">Roadside</a></h1>
                <h2>Studio</h2>
            </div>
        </div>
        <!-- CONTENT -->
        <div id="content">
            <!-- TABS -->
            <ul id="tabs">
                <li id="previous">
                    <a href="#previous" title="Previous">&lt;</a>
                </li>
                <li id="home" class="current">
                    <a href="#home" title="Home">Home</a>
                </li>
                <li id="portfolio">
                    <a href="#portfolio" title="Portfolio">Portfolio</a>
                </li>
                <li id="about">
                    <a href="#about" title="About">About</a>
                </li>
                <li id="contact">
                    <a href="#contact" title="Contact">Contact</a>
                </li>
                <li id="next">
                    <a href="#next" title="Next">&gt;</a>
                </li>
            </ul>
            <!-- PAGE WRAPPER -->
            <div id="page-wrapper">
                <!-- SLIDESHOW -->
                <div id="slideshow">
                    <div id="slides">
                        <a href="#portfolio.work1" title="See details" class="thumb default-slide">
                            <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/./img/slideshow/1.png" alt="Flex Engine Web Design" class="slideshow-image" />
                        </a>
                        <a href="#portfolio.work2" title="See details" class="thumb">
                            <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/./img/slideshow/2.png" alt="Concept Labs Portfolio" class="slideshow-image" />
                        </a>
                        <a href="#portfolio.work3" title="See details" class="thumb">
                            <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/./img/slideshow/3.png" alt="Everlast Studio" class="slideshow-image" />
                        </a>
                    </div>
                    <div id="slideshow-commands">
                        <a href="#previous" title="Previous" id="previous-slide">&lt;</a>
                        <a href="#next" title="Next" id="next-slide">&gt;</a>
                        <h4>
                            <a href="#portfolio.work1" title="See details" id="slide-title">
                                Flex Engine Web Design
                            </a>
                        </h4>
                    </div>
                </div>
                <!-- MESSAGE -->
                <div id="message">
                    <h3>We build great websites!</h3>
                    <p>
                        Curabitur nec sem in risus adipiscing feugiat. Etiam elementum malesuada purus.
                        Quisque nec mi eu mauris ornare aliquam. Praesent adipiscing,
                        metus sed luctus condimentum, quam turpis interdum tortor,
                        in dignissim magna urna tempor odio. Integer porttitor. Nam dolor urna,
                        ultricies vitae, porttitor ut, dignissim vitae, elit.
                    </p>
                    <p id="contact-info">
                        <span id="phone">+33 1 23 45 67 89</span>
                        <span id="address">
                            34, Avenue des Champs-<br />
                            Elysées, 75006, Paris,<br />
                            France
                        </span>
                    </p>
                </div>
            </div>
            <!-- BLOG MODULE -->
            <div class="module" id="blog">
                <h4 class="module-header-bar">Latest entries from the blog</h4>
                <div class="blog-entry">
                    <h5><a href="#blogentry1" title="Vivamus sed risus">Vivamus sed risus</a></h5>
                    <p class="meta">By Jonathan Davidson - 05 / 08 / 09</p>
                    <blockquote class="content">
                        <p>
                            Vivamus sed risus quis felis sagittis cursus. Duis blandit tristique turpis. Nulla feugiat vehicula metus.
                        </p>
                    </blockquote>
                </div>
                <div class="blog-entry">
                    <h5><a href="#blogentry2" title="Pellentesque pulvinar">Pellentesque pulvinar</a></h5>
                    <p class="meta">By The Team - 05 / 01 / 09</p>
                    <blockquote class="content">
                        <p>
                            Pellentesque pulvinar dolor nec orci. Pellentesque scelerisque elit.
                        </p>
                    </blockquote>
                </div>
                <div class="blog-entry">
                    <h5><a href="#blogentry3" title="Cras in nibh">Cras in nibh</a></h5>
                    <p class="meta">By Nicholas Denman - 05 / 01 / 09</p>
                    <blockquote class="content">
                        <p>
                            Quisque dapibus, justo a bibendum pellentesque, tellus felis cursus libero, posuere sodales diam ipsum in lorem.
                        </p>
                    </blockquote>
                </div>
                <p id="read-more-wrapper">
                    <a href="#blog" title="Read More">
                        Read More
                    </a>
                </p>
            </div>
            <!-- TWITTER MODULE -->
            <div class="module" id="twitter">
                <h4 class="module-header-bar">Follow the Roadside Team on Twitter</h4>
                <div class="tweet">
                    <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/img/team/1.png" alt="Jonathan Davidson" />
                    <h5><a href="#@JonathanDavidson" title="Jonathan Davidson">Jonathan Davidson</a></h5>
                    <blockquote>
                        <p>
                            Proin et libero. Curabitur molestie mauris eu massa.
                        </p>
                    </blockquote>
                </div>
                <div class="tweet">
                    <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/img/team/2.png" alt="Nicholas Denman" />
                    <h5><a href="#@NicholasDenman" title="Nicholas Denman">Nicholas Denman</a></h5>
                    <blockquote>
                        <p>
                            Etiam felis ligula.
                        </p>
                    </blockquote>
                </div>
                <div class="tweet">
                    <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/img/team/3.png" alt="Jessica Marshall" />
                    <h5><a href="#@JessicaMarshall" title="JessicaMarshall">Jessica Marshall</a></h5>
                    <blockquote>
                        <p>
                            Pellentesque est massa, posuere eu.
                        </p>
                    </blockquote>
                </div>
                <div class="tweet">
                    <img src="http://nettuts.s3.amazonaws.com/336_siteFromScratch/img/team/4.png" alt="Ann De Wever" />
                    <h5><a href="#@AnnDeWever" title="Ann De Wever">Ann De Wever</a></h5>
                    <blockquote>
                        <p>
                            Nulla facilisi. Nam lacinia tristique ante.
                        </p>
                    </blockquote>
                </div>
                <p id="get-tweets-wrapper">
                    <a href="#twitter">
                        Get More Tweets!
                    </a>
                </p>
            </div>
        </div>
        <div id="footer">
            <div id="footer-image"></div>
            <p id="footer-text">
                Copyright © 2009 Roadside Studio<br />
                All Rights Reserved
            </p>
        </div>
    </body>
</html>

You can check its validity once again and see that it is successfully check as xHTML 1.0 Strict!

Step Five – The CSS

The Cascading Style Sheet language is one with an extremely easy syntax and is therefore very easy to learn. However, primarily due to browser inconsistencies, it can be utterly hard to master. We will try to keep the CSS as simple and concise as possible, while still trying to make it work on all modern browsers. To do this, there is one concept we need to master. I’m talking about the box model.

The box model is the way a box is displayed in your web page. But one image would probably be better than a long explanation.

This is the W3C’s standard box model. What is important to grasp here is that the actual width of the box is not the one defined by the width property, but the addition of the width, the padding, and the border. So let’s say we have a box with a width set to 200px, 25px padding on both sides and a border that is 5px thick around this box. The actual displayed width of the box will be 260px and not 200px as we wanted it to be. But that is fine, if we want a box that is strictly 200px wide, we’ll just need to set the width property to 140px and we’re all set. The important thing is just to know how this actually works. This will avoid a lot of headaches later on.

Okay, now that you are familiar with the concept of the W3C’s box model, we can get started coding our design.

The CSS Reset

I was talking about browser inconsistencies before. Those include some browser setting a margin of 10px to each block, some setting it to 15px and more of such issues. This can obviously cause some problems while coding because we won’t necessarily reset all those properties in our code. To solve this problem and hence help us produce pixel-perfect sites, we’ll want to use a CSS Reset. There are a lot of them available out there, but in my honest opinion, Eric Meyer’s is still the best one. I just like the way it resets pretty much everything and allows us full control over our layout. You can fetch it over here: http://meyerweb.com/eric/tools/css/reset/ . I’ve decided to put this in its own CSS file called reset.css and I then put it in the CSS folder of our template.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, font, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td {
    margin: 0;
    padding: 0;
    border: 0;
    outline: 0;
    font-size: 100%;
    vertical-align: baseline;
    background: transparent;
}
body {
    line-height: 1;
}
ol, ul {
    list-style: none;
}
blockquote, q {
    quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
    content: '';
}
/* remember to define focus styles! */
:focus {
    outline: 0;
}
/* tables still need 'cellspacing="0"' in the markup */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

I just decided to remove the content: none; line because it made the CSS validation fail. * Editor’s note: remember folks, validation should work for you, not against. It’s okay if your page doesn’t validate IF you know exactly why. Since I knew I wasn’t going to need inserts and deletes, I removed those resets as well, just to make this thing a little more lightweight.

If you reload the index.html file in your browser, you’ll see that nothing has changed. This is due to the fact that we didn’t yet link to the stylesheet in out HTML. We will not add a link tag in out head section though. Instead, we’ll just call the reset.css file from our main stylesheet using the @import command when we start building it.

The Typography

I usually split my CSS in two parts. One that controls the layout of the page, this is my main stylesheet, and one controlling the typography. This includes text align, font colour, font size, letter spacing, line height and so on. This is a good thing to do because it allows you more flexibility in your coding process. Let’s say you want to change the h1’s font size to 48px instead of 36px, well instead of starting digging in your style.css which probably is several hundred lines long, you can just open you typography stylesheet, find the styles related to the h1 tag, change the font size and you’re done!

When coding our typography stylesheet, our Photoshop layout will be extremely useful. We can grab the Type Tool (T) in Photoshop, and start highlighting the different text blocks our design. That way, we can see that the h1 is going to have a font size of 48px, a colour of #4d4d4d, and a font set to Myriad Pro. This last point will cause some problems. Myriad Pro is not a standard web font, so we cannot define a font-family starting with Myriad Pro and think that everyone will see our design the way they should. We are going to solve this problem later on using some more advanced web techniques, but for now, we’ll just define a font-family property with Myriad Pro included, and some other fallback fonts in case the reader doesn’t have Myriad Pro installed on his computer.

If we continue like this, scanning through our PSD to get all the font information, we can see that our h3 tags should have a font size of 24px, that our h5 tags have a colour of #6eb9cc and so on. If we proceed logically, this is what we will come up with:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
h1 {
    color: #4d4d4d;
    font-family: "Myriad Pro", Helvetica, Arial, sans-serif;
    font-size: 48px;
    font-weight: normal;
}
h1 a { color: #4d4d4d; text-decoration: none; }
h2 {
    color: #6ec9cc;
    font-family: "Myriad Pro", Helvetica, Arial, sans-serif;
    font-size: 12px;
    letter-spacing: 28px;
    text-transform: uppercase;
}
h3 {
    color: #6ec9cc;
    font-family: "Myriad Pro", Helvetica, Arial, sans-serif;
    font-size: 24px;
    font-weight: normal;
}
h4 {
    color: #ffffff;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: normal;
    text-align: center;
}
h4 a { color: #ffffff; text-decoration: none; }
h5 {
    color: #6ec9cc;
    font-family: "Myriad Pro", Helvetica, Arial, sans-serif;
    font-size: 18px;
    font-weight: normal;
}
h5 a { color: #6ec9cc; text-decoration: none; }
/* Paragraph styling */
p {
    color: #525252;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
}
p.meta { color: #707070; font-size: 10px; text-align: right; }
p#footer-text { text-align: center; }
div#message p { color: #4d4d4d; line-height: 20px; }
/* Link styling */
a {
    color: #999999;
    text-decoration: none;
}
a:hover { text-decoration: none; }
p#action-bar a { color: #ffffff; }
p#action-bar a:hover { color: #6eb9cc; text-decoration: none; }

I don’t think there is very much I need to explain. This is just the very basic appearance styling. Note that I’m defining styling for standard paragraph tags and standard anchor tags before starting to define the appearance of more specific text blocks such a meta paragraphs for instance. This is part of a “Don’t Repeat Yourself” concept of coding. The fallbacks font I decided to use are Helvetica and Arial, they are not great replacements for Myriad, but we will probably don’t need them anyway as I’ll explain later. It is just to be sure.

One thing I want to talk about is the coding style here. Of course, indents are important for the readability of the code, but not only. At first glance, you may think my code looks a little bit messy, but if you look at it more carefully, you’ll notice that I’m following a very strict syntax. The first point of this syntax is to order properties alphabetically. This greatly helps finding a property when you want to edit it later on. Next is the fact that I keep my styling on one single line if I don’t use more than three properties for the element and that it is not a default styling being declared such as for the p tag. While it can be argued whether it is readable or not, it drastically diminishes the file size. In my opinion, it is not hard to read even though the declarations are kept on one single line. It even makes the CSS more concise and easier to browse.

The most important thing with your coding style is consistency. If you don’t want to use one-line declaration, just don’t. You need to feel comfortable with the way you code. I’m not saying my way is the best one; I just like it that way. I encourage you however to find your own style to code even faster!

Setting up our main stylesheet

When we were done with the reset, I told you not to include it in the HTML file directly using a link tag because we were going to call it from our main stylesheet. You could obviously include all your CSS files directly in the HTML code, but I decided not to, since it keeps the head section tidier.

We’ll need to create our master stylesheet. I usually call those style.css, but you could call it main.css, master.css, screen.css or whatever. Within this stylesheet, we’ll need to include first our reset, then our typography stylesheet. To do so, I’m using the @import rule. Your first lines in the style.css file should look like this:

1
2
@import url('reset.css');
@import url('typography.css');

With those few lines, we include our two stylesheets in the style.css file, and we just have to call one file in our head section.

1
<link title="Style" href="css/style.css" rel="stylesheet" media="screen" type="text/css" />

If we look at our web page now, this is what we would see:

I’d have to agree with you if you’d say that it doesn’t look awesome for the moment, but you can still see some details looking exactly as we want them to such as the meta paragraphs or even the logo. Okay, now that out master stylesheet is set up, we can start styling the page for real!

The Body

We just need to set some basic styling for the body tag. This includes centring the design using margin: auto, setting a background colour, and setting the width to 100%.

1
2
3
4
5
body {
    background-color: #f8f8f8;
    margin: auto;
    width: 100%;
}

The Status Bar

As always, we’ll just start from the top and design our way down to the footer. I like coding my designs divided in blocks. I start with the header for instance, then take a break, design the content and so on. It helps motivating me. This also involves completely finishing an area before starting another.

So, before we start the actual CSS coding of the status bar, let’s take some time and see what images we need for it. The first is a background image, which is a simple gradient that will be repeated on the x-axis. The second is a background for the action bar: a rounded rectangle. We could obviously have used border-radius property here, but I decided to use an image in order to make it pixel-perfect through all browsers. The last image we need for our status bar is a background for the search box.

Let’s start with the background image. As I’ve said, we will repeat this image on the x-axis, so we just need an image that is 1px wide. This will drastically reduce its size. So start by grabbing the Single Column Marquee Tool in Photoshop, go to the Status Bar / Box layer group, hide the “Border” layer, and merge the “Background” and the “Shadow” layer together. Once this is done, select a slice of this recently created layer with your selection tool, copy it, and paste it in a new document. This document should be 1*50px. Because of some box model quirks, we’ll need to reduce this height to 40px. Just crop the 10 top pixels and then save it for Web & Devices (Alt + Shift + Ctrl + S) in PNG 24, and call it status-bar-bg.png. Save For Web & Devices offer great compression tools in order to make the file sizes as small as possible. This is very important when working with the web, and that is why you should always use that tool.

Now, the action bar background; open the “Action Bar” layer group, and select the layer called “Shape”. Select the entire document (Ctrl + A), copy the layer, and paste it on a new document. You’ll need to rasterize the vector shape in order to copy it correctly. Don’t forget to set the layer’s opacity to 55% again. Save this for Web & Devices again, and call it action-bar-bg.png.

Final step for converting the design into images will be the Search Field. Just go to the “Search Field” layer group, hide the “Search” layer, and merge the magnifier and the shape together. Again, select the entire document with Ctrl + A, and copy it onto a new document. Save it as search-field.png.

Okay, now that we are done with the images, we can start coding. The first thing we want to do is to set up the container. Set its width and height, as well as a background image and a border.

1
2
3
4
5
6
div#status-bar {
    background: url('../img/status-bar-bg.png') repeat-x;
    border-bottom: 2px groove #ffffff;
    height: 40px;
    width: 100%;
}

The groove style for the border gives us this nice look we were struggling to obtain in Photoshop. We’ve set a width of 40px even though our background is 50px because of the box model.

Then we want to make sure the content of this bar is centred. The thing here is that we want the background to take 100% of the width while the content should be centred. This is why we used a wrapping div that contains pretty much everything we put in our status bar. We should apply a width of 800px to it as well as some margin.

1
2
3
4
div#status-bar-content {
    margin: 10px auto 0px auto;
    width: 800px;
}

In order to place the two parts of this status bar, the left and the right, correctly, we are setting width and float properties.

1
2
3
4
5
6
7
8
div#status-bar-commands {
    width: 400px;
}
form#search-form {
    float: right;
    width: 200px;
}

Now we need to style the status-bar-commands in order to make the action bar float in the middle of the status bar. We also put the right background image to the status bar. Paddings and margins are obviously also used to make things look the way they should. Keep the box model in mind while setting those properties up! That is the reason why we set the action bar’s height to 14px instead of 30px; we’ve got 8px padding.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
p#welcome {
    float:left;
    padding-top: 7px;
    width: 150px;
}
p#action-bar {
    background: url('../img/action-bar-bg.png') no-repeat;
    height: 14px;
    margin-left:200px;
    padding: 8px 28px;
    width: 154px;
}
p#action-bar a:before {
    content: '|  ';
}
p#action-bar a[title="License"]:after {
    content: '  |';
}

We’re adding “|”s to separate the links in the action bar. I chose to do so because it is more semantically correct. Indeed, those pipes have absolutely nothing to do with our content, so putting them in the HTML wouldn’t actually be right. Notice the pretty complex last selector that selects the last link and adds a pipe after it as well as before it.

The last point will be styling the search field and add the background image to it. We’ll need to reset some browser default style that is added to inputs, and we also need to hide the submit button. This is maybe not the best thing to do when we’re talking about accessibility, but still, I chose to make design go before accessibility on this one.

01
02
03
04
05
06
07
08
09
10
11
form#search-form input[type="text"] {
    background: url(../img/search-field.png) no-repeat;
    border:none;
    height:20px;
    padding: 5px 0px 0px 30px;
    width:170px;
}
form#search-form input[type="submit"] {
    display: none;
}

This is what we should have now:

It’s looking pretty similar to our PSD doesn’t it? Well that’s exactly what we want! Let’s now proceed with the header.

The Header

The header is fairly basic so It will actually be pretty easy to code.

The first thing we need to do though is to prepare our image. Just navigate to the “Header” layer group, and merge the “Image” layer and the “Shape” layer together. Now select the document with Ctrl + A, and finally copy and paste it in a new document. The file should be 1600*250px.

We’ve got a problem now though. We don’t want the header image to repeat itself over the header if the reader’s screen resolution is wider than 1600px. We therefore need to fade out the edges by adding a layer mask to it, and making the left and right edges fade out to transparency. However, transparency on such big images can be extremely long to load, so I’ve just filled the background with #6eb9cc.

This image is huge, so we need to compress it in order to make it load faster. I’ve chosen to save it in PNG 8 with only 256 colours. This will reduce the size with almost 80% compared to PNG 24, which is huge! Call this file header-image.png.

Okay, to now the code. We want the header image to be centred within the “header” div. But in order to let widescreens display our design correctly, we need to apply a background colour as well so that it can fade out nicely. We also set a border. Instead of using groove, I’m using the ridge style, which is the exact opposite, because it puts the start colour at the top and not at the bottom, which is what we want in this case. I’m just applying some styling to the logo as well to place it correctly.

01
02
03
04
05
06
07
08
09
10
11
12
13
div#header {
    background: url('../img/header.png') no-repeat;
    background-color: #6eb9cc;
    border-bottom: 2px ridge #ffffff;
    height: 250px;
    width: 100%;
}
div#logo {
    margin: auto;
    padding-top: 35px;
    width: 800px;
}

That’s actually all we have to do with our header. We can now check the result in a browser:

The Content Box

We have to break our semantic rule here a little bit. Indeed, in order to put the top and bottom shadow to the content div, we need to create to empty divs in our markup: one with an ID of “content-top-shadow” and the other with an ID of “content-bottom-shadow”. Those the first div should be placed between the header div and the content div, and the other one should be placed between the content and the footer. I know we could have used CSS 3’s multiple backgrounds to solve this problem, but the issue is that multiple backgrounds are not yet supported by a lot of browsers, so we will just stick with this technique for now.

Before we code we need to fetch out images. Just go to the “Content” / “Box” layer group, and merge the background shape with the two shadow layers. Then use the Single Column Marquee Tool and select a 1px slice of the background. Copy and paste it in a new document. Now use the Crop Tool and crop the top 20px of the image. Save this for Web & Devices as PNG 24, and call it content-top-shadow.png. Then do Edit->Transform->Rotate 180, and save it again, this time as content-bottom-shadow.png.

To the div#content, we are just adding some basic box layout such as padding and width, but the interesting part here are the two “content-shadow” containers. We’re obviously setting up a height and width, and a background image, which is repeated on the x-axis. This produces the illusion of a shadow. I’m also just applying a clear: both; to the content-bottom-shadow, because I know my modules will float and that it won’t work otherwise.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
div#content {
    margin: auto;
    padding-bottom: 50px;
    position: relative;
    width: 800px;
}
div#content-top-shadow {
    background: url('../img/content-top-shadow.png') repeat-x;
    height: 20px;
    width: 100%;
}
div#content-bottom-shadow {
    background: url('../img/content-bottom-shadow.png') repeat-x;
    clear: both;
    height: 20px;
    width: 100%;
}

Just notice that we set position: relative; the content div. This will come in handy later on when we will place our tabbed navigation menu.

Good, now that we are finished with finished this box, we can start styling the content!

The Page Wrapper

Instead of starting with styling the menu, we will just make sure our page wrapper is displayed correctly first.

To start with, we will add some basic box styling to the page wrapper. We are define width, height, padding and margin as we chose to do in our PSD, while keeping the W3C’s box model in mind (yes, it is still haunting us!), and we add a white background colour and a border. Because we will use the float property to display the tabbed navigation menu, we need to clear: both; here, and since we are using a fix height, we also want to hide any overflow in order not to break our layout. Overflow shouldn’t happen, but we never know.

01
02
03
04
05
06
07
08
09
10
div#page-wrapper {
    background-color: #ffffff;
    border: 1px solid #bababa;
    clear: both;
    height: 233px;
    margin-top: 75px;
    overflow: hidden;
    padding: 15px;
    width: 768px;
}

We now want to design our slideshow box. This is really basic styling. Thanks to the box model, we can use the border property to display the vertical separator we want between the slideshow and the message.

1
2
3
4
5
6
div#slideshow {
    border-right: 1px solid #b2b2b2;
    float: left;
    padding-right: 15px;
    width: 375px;
}

Now we want to make sure we only display one thumbnail when the page is loaded, because the way it is coded at the moment displays all three thumbs at the same time, which completely breaks our design. We could obviously let our JavaScript fix this for us, but it is just not acceptable to make it impossible for people without JS activated to see our page. After adding some styling to each thumbnail, we therefore hide all the thumbnails, and then just display the one with a class of “default-slide”.

01
02
03
04
05
06
07
08
09
10
11
12
13
div#slides {
    border: 1px solid #a7a7a7;
    height: 200px;
    width: 370px;
}
div#slides a.thumb {
    display:none;
}
div#slides a.default-slide {
    display:block;
}

Once we did this, the last step is to style the slideshow commands. We need to cut out some images from the PSD. You are starting to get used to the process, so just navigate to “Content” / “Wrapper” / “Slideshow” / “Commands” layer group, and rasterize all the layers. Then copy the left arrow, the right arrow, and the background to new documents, and save them as commands-previous-slide.png, commands-next-slide.png and commands-bg.png respectively.

We then need to include those into our template. I’m first defining the box layout, with its background-image, width and height and also a position: relative; to be able to centre it under the thumbnail.

We can then use a basic image replacement technique to make our previous and next commands look nice.

Finally, a margin-top on the title is necessary to centre it vertically.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
div#slideshow-commands {
    background: url('../img/commands-bg.png') no-repeat;
    height: 19px;
    left: 15px;
    padding: 3px 25px;
    position: relative;
    width: 290px;  
}
a#previous-slide {
    background: url('../img/commands-previous-slide.png') no-repeat;
    display: block;
    float: left;
    height: 12px;
    margin-top: 2px;
    text-indent: -9000px;
    width: 9px;
}
a#next-slide {
    background: url('../img/commands-next-slide.png') no-repeat;
    display: block;
    float: right;
    height: 12px;
    margin-top: 2px;
    text-indent: -9000px;
    width: 9px;
}
div#slideshow-commands h4 {
    margin-top:1px;
    width:100%;
}

Okay great, our slideshow is now displaying correctly. We just want to style the message and we’ll be done with the wrapper. Styling will be pretty easy because most of it was made in the typography.css file.

We are first setting up some box styling in order to make the message have a 15px left margin, and we are also applying a margin-bottom to the title to make things breathe.

1
2
3
4
5
6
7
8
div#message {
    margin-left: 410px;
    width: 350px;
}
div#message h3 {
    margin-bottom: 20px;
}

The hardest part of this will be styling the contact information. Before we get started, make sure to save the Phone and the Mail icon into two separate files and call them phone-icon.png and address-icon.png respectively. I feel that you all probably know how to do so by now so I don’t think it’s necessary to explain once again.

We will apply those images with a background image, but to be able to do so, we need to use the span tags as blocks, hence the display: block; on the span tags. The rest is simple, we add a background image to each span, make one float left, and use paddings to indent the text away from the icon.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
p#contact-info span {
    display: block;
}
span#phone {
    background: url('../img/phone-icon.png') no-repeat 0px 1px;
    float: left;
    margin-top: 25px;
    padding-left: 35px;
    width: 125px;
}
span#address {
    background:url('../img/mail.png') no-repeat 160px 30px;
    padding:5px 0px 0px 195px;
}

If we take a look at the design now this is what we will see:

It still doesn’t look great just yet, but we are really starting to get somewhere. The next step is going to make it look even better!

The Navigation Menu

This will be a tough nut to crack. It is a pretty complex menu we are using here, and the fact that it is lined up to the right doesn’t make things easier. However, the fact that we already designed the menu in Photoshop will obviously help us a little bit.

Sprites

We are going to use something called CSS Sprites. Instead of using an image for each link, we will just combine them all into one big image, called sprite. This technique has numerous advantages. Instead of loading about twenty images, including hover and active states, we just have to load one. This can drastically reduce the loading time and is also good for your server.

So, how do we do such a sprite? Start by creating a new document that is 425*115px. Then drag and drop the tabs menu from our PSD to this file. Remove all unnecessary spacing with Ctrl + T and finally remove the hover and active state we put to Home and Portfolio in order to make our design look real. This line just contains our default buttons: when they are neither hovered nor active. This is what it should look like:

Then duplicate this layer group twice, and place them with 5px space. The second line will be our hovered state, so the font colour should be #6eb9cc. The third is active state, so the font should be bold. This is what our sprite looks like once finished:

You should obviously make your background transparent. I just added a white background to make it more legible as a screenshot.

Once this is done, Save it for Web and Devices in PNG 24, and call it tabs-sprite.png.

The important thing to keep in mind when designing sprites is to keep the width of each element constant, and to align them nicely in order to be sure to use background-position later on without problems.

Okay, we now have out sprite. You may wonder how we are going to apply this to our unordered list that really doesn’t look like a horizontal tabbed navigation menu. The answer is to come.

Before we actually start using our background images, we just want to place the menu right. This is where a relative positioning on the content comes in handy. By using an absolute positioning on the tabs, we can now place it referring to its parent and not the window. This means that the (0, 0) coordinate will not be the top left of the window, but of the “content”! This gives us a lot of flexibility in our coding.

After placing the list, we now need to style the bullet points. By floating them to the left, we make the items being displayed on one single row. After adding width and height properties too, we set the background image to our sprite file. This means that each element of the unordered menu list will share the same background, and this is the subtlety of CSS Sprites.

We are also using image replacement to remove the raw text links and to make the link clickable over the entire tab.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
ul#tabs {
    margin-top: 30px;
    position: absolute;
    right: 0px;
    top: -65px;
}
ul#tabs li {
    background: url('../img/tabs-sprite.png') no-repeat;
    float: left;
    height: 35px;
    margin-right: 1px;
    width: 70px;
}
ul#tabs li a {
    display: block;
    height: 100%;
    text-indent: -9000px;
    width: 100%;
}

Right, the next step will be to style each tab. We need to apply regular background position, then hover background position, and finally active and current position. This is for instance what it looks like for the “previous” tab:

01
02
03
04
05
06
07
08
09
10
11
12
ul#tabs li#previous {
    background-position: 0px 0px;
    width:80px;
}
ul#tabs li#previous:hover {
    background-position: 0px -40px;
}
ul#tabs li#previous.current, ul#tabs li#previous:active {
    background-position: 0px -80px;
}

Just don’t worry too much about the width we set to it, it is simply because the “previous” tab is wider than the standard tabs. We don’t have to bother with this with the other tabs.
Just do so for each tab, and don’t forget to replace the pixel values with the correct ones. You can use Photoshop’s Ruler Tool (I) to help you. This is what the complete code looks like:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
ul#tabs li#previous {
    background-position: 0px 0px;
    width:80px;
}
ul#tabs li#previous:hover {
    background-position: 0px -40px;
}
ul#tabs li#previous.current, ul#tabs li#previous:active {
    background-position: 0px -80px;
}
ul#tabs li#home {
    background-position: -80px 0px;
}
ul#tabs li#home:hover {
    background-position: -80px -40px;
}
ul#tabs li#home.current, ul#tabs li#home:active {
    background-position: -80px -80px;
}
ul#tabs li#portfolio {
    background-position: -150px 0px;
}
ul#tabs li#portfolio:hover {
    background-position: -150px -40px;
}
ul#tabs li#portfolio.current, ul#tabs li#portfolio:active {
    background-position: -150px -80px;
}
ul#tabs li#about {
    background-position: -220px 0px;
}
ul#tabs li#about:hover {
    background-position: -220px -40px;
}
ul#tabs li#about.current, ul#tabs li#about:active {
    background-position: -220px -80px;
}
ul#tabs li#contact {
    background-position: -290px 0px;
}
ul#tabs li#contact:hover {
    background-position: -290px -40px;
}
ul#tabs li#contact.current, ul#tabs li#contact:active {
    background-position: -290px -80px;
}
ul#tabs li#next {
    background-position: -360px 0px;
    width: 65px;
}
ul#tabs li#next:hover {
    background-position: -360px -40px;
}
ul#tabs li#next.current, ul#tabs li#next:active {
    background-position: -360px -80px;
}

Well that was all for the tabs! This is what our template looks like now:

The Blog Module

We’ll start off with the basics as usual. Some obvious layout styling gives us something like this:

1
2
3
4
5
div#blog {
    float: left;
    margin: 50px 15px 0px 0px;
    width: 385px;
}

After this, we’ll just style the header bar. We need to make create an image to use as background here. Just go to the right layer group, hide the text layer, and merge the icon and the shape. Save this as blog-header-bar.png.

We can add this background image once we’ve set the height, width, padding and margin:

1
2
3
4
5
6
7
div#blog h4.module-header-bar {
    background: url('../img/blog-header-bar.png') no-repeat;
    height: 29px;
    margin-bottom: 15px;
    padding-top: 13px;
    width: 385px;
}

The next step will be to style each entry. Since most of the job was done in typography.css, we don’t need to do very much here, just add some margins and paddings basically.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
div#blog div.blog-entry {
    margin-left:15px;
}
div#blog div.blog-entry h5 {
    float:left;
    width:200px;
}
div#blog div.blog-entry blockquote {
    clear:both;
    padding:10px 0px 10px 15px;
}
div#blog div.blog-entry p.meta {
    padding-top:4px;
}

The final step is to style the “Read More” link. Because we are going to use three states for this button (regular, hover and active) we will use a sprite here as well. Just drag the right layer group in a new document, and duplicate it twice. I left 10px between each state. For the hover state, I just changed the text colour to #6eb9cc, and for the active state, I just reversed both the Gradient Overlay and the Stroke to create a 3D effect when clicking on it. This is what my sprite looks like:

I saved it as read-more-button.png. To apply this, we will basically do as we did for the tabs. We also need to make the button float right and have some margins.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
p#read-more-wrapper {
    float:right;
    margin-top:10px;
    width:215px;
}
p#read-more-wrapper a {
    background:url('../img/read-more-button.png') no-repeat;
    border:none;
    display:block;
    height:30px;
    text-indent:-9000px;
    width:214px;
}
p#read-more-wrapper a:hover {
    background-position: 0px -30px;
}
p#read-more-wrapper a:active {
    background-position: 0px -60px;
}

We are now done we the blog module! Let’s take a look at what it looks like.

The Twitter Module

This is pretty much the same as the blog module, so I’ll just go through this more quickly.

I guess there is no need to explain how you should do to get the header bar background. Just remember to hide the text before merging. Call this image twitter-header-bar.png.

We add some margins and a width to the box, and then append the header bar’s background just as we did for the blog.

01
02
03
04
05
06
07
08
09
10
11
div#twitter {
    margin: 38px 0px 0px 415px;
    width: 375px;
}
div#twitter h4.module-header-bar {
    background: url('../img/twitter-header-bar.png') no-repeat;
    height: 40px;
    padding-top: 26px;
    width: 385px;
}

After that, we just style each tweet. Just notice that we make the picture float in order to make it appear on the left of the name. Margins and paddings are set using the box model.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
div#twitter div.tweet {
    margin: 3px 0px 17px 30px;
}
div#twitter div.tweet img {
    border: 1px solid #757575;
    float: left;
    height: 29px;
    margin-right: 15px;
    width: 29px;
}
div#twitter div.tweet h5 {
    position: relative;
    top: -3px;
}

The reason we positioned the h4 the way we did is because the default line-height of Myriad Pro is a little bit unconventional. Don’t worry however if you don’t want to have your code filled with position: relative, it is just a minor detail we are fixing here.

For the Get More Tweets buttons, just replace the text in your Read More sprite, and save it again, this time as get-more-tweets-button.png. After that, we use exactly the same technique we used for the Read More button.

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
p#get-tweets-wrapper {
    float:right;
    margin-top:9px;
    width:215px;
}
p#get-tweets-wrapper a {
    background: url('../img/get-tweets-button.png') no-repeat;
    border: none;
    display: block;
    height: 30px;
    text-indent: -9000px;
    width: 214px;
}
p#get-tweets-wrapper a:hover {
    background-position: 0px -30px;
}
p#get-tweets-wrapper a:active {
    background-position: 0px -60px;
}

By finishing this Twitter module, we also finish the content styling! I know it was really long, but just look at what we produced. I believe it was worth it!

It’s really starting to look awesome!

The Footer

Our footer is made of two parts. The first one is the image, and the other one is the text part.

For the same reasons we had to edit the header image a bit, we need to make the edges of the footer image fade out to #6eb9cc as well. Just copy the image on a new document, and use the Gradient Tool (G) to do so. Save this in PNG 8 and call it footer-image.

To add this to our document, the code we’ll use is almost exactly the same as the one we used for the header.

1
2
3
4
5
6
7
div#footer-image {
    background: url('../img/footer-image.png') no-repeat #6eb9cc;
    border-top: 2px groove #ffffff;
    border-bottom:2px ridge #ffffff;
    height:50px;
    width:100%;
}

Finally, for the footer text, we are adding the already created content-top-shadow.png image as a background image to create the shadow effect. We are also obviously setting height, width and some padding.

1
2
3
4
5
6
p#footer-text {
    background: url('../img/content-top-shadow.png') repeat-x;
    height: 37px;
    padding-top: 13px;
    width: 100%;
}

Done with the CSS

And that was it; we are now done with the CSS! That was pretty difficult wasn’t it? The important thing to remember when coding a layout is to proceed logically, always remembering the box model. Once you know what you are doing with it, you’ll code much more efficiently and you won’t have to struggle that much with cross-browser bugs. This is what our page looks like in Firefox:

I can assure you that this page looks exactly the same in IE 8, Safari 3 and 4, Chrome 1 and 2, Firefox 3, and Opera 9.5! However if we now look at how it looks in IE 7, we’ll notice several defects. If you don’t have IE 7 on your computer, just run IE 8 in compatibility mode and you’ll see the page just as you would in IE 7.

Those issues are for instance:

  • Status bar is too thin
  • Action bar is not correctly positioned, and the lack of :before makes the padding go crazy
  • The page wrapper is not correctly positioned
  • The slideshow title is not correctly positioned.

This might look like a lot, but it actually isn’t. They can be easily fixed using either the !important hack or a conditional comment. I don’t like CSS Hacks, so I’m going to stick with a conditional stylesheet. But feel free to use whichever technique you want.

Fixing IE Problems

I said we were going to use conditional comments. What are those? Well they are simply a way to target Microsoft’s browsers and use a specific tag or group of tags that we only be shown in IE. Other browsers will just interpret this as a comment and will therefore not display the tag. In our case, we are going to put a link tag to an external stylesheet in this comment.

1
2
3
<!--[if IE 7]>
    <link rel="stylesheet" media="screen" type="text/css" title="Style" href="css/ie7.css" />
<![endif]-->

Once this stylesheet is included, we can start fixing the few problems we are facing. Create a new stylesheet called ie7.css, and save it in our css folder.

The first thing we need to do is to fix the height of the status bar. Nothing too complicated, just set a new height, and be sure that the background is attached to the bottom since it is not 50px high but only 40.

1
2
3
4
div#status-bar {
    background-position: bottom;
    height: 50px;
}

We then need to fix the problem that we are experiencing due to the fact that IE 7 doesn’t support pseudo-format :before and :after. Instead of adding pipes with background images or something to the links in the action bar, we just space the links a bit more, and centre them. We also need to fix the fact that IE doesn’t understand how to correctly float items that are not situated over the container in the source code. This can be done using an absolute positioning, and fixing the margin-left.

01
02
03
04
05
06
07
08
09
10
p#action-bar {
    margin-left: 50px;
    position: absolute;
    text-align: center;
    top: 10px;
}
p#action-bar a {
    margin-right: 5px;
}

After this, we have the issue with the position of the page wrapper. Nothing too complicated to solve here, just use the box model to your advantage. We also use this selector to remove the over-spacing on the bottom of the content div.

1
2
3
4
5
6
7
8
div#content {
    padding-bottom: 0px;
    padding-top: 75px;
}
ul#tabs {
    top: 10px;
}

IE doesn’t seem to display our slide title correctly, because we have set a relative positioning to it. Just change this to absolute, and reset the top and left properties.

1
2
3
4
5
div#slideshow-commands h4 {
    left: 0px;
    position: absolute;
    top: 4px;
}

Finally, it happens that IE doubles the padding between the entry title and its content in the blog module. We can fix this by setting half the value to it.

1
2
3
div.blog-entry blockquote {
    padding-top: 5px;
}

Okay, you can now check our design in IE 7 and see that it works just fine too!

Step Six – The JavaScript

This will not be very complicated. We will use jQuery, the jQuery Cycle Plugin, and Cufón. I’ll explain why and where you can download them as we go.

I’m using JavaScript here following the philosophy of progressive enhancement. Obviously, the slideshow won’t work right now if we don’t have JavaScript enabled, but it could easily if we just added some PHP to the page and changed the next and previous links. However, this is not the subject of the tutorial so I won’t cover it. Just keep in mind that it would only take 5 lines of PHP code to make it work. So that’s for the slideshow being progressively enhanced. We are also smoothing out the heading fonts with a JavaScript code. This enables us to use any font we wish even if the reader doesn’t have it installed on his computer. If the reader does not have JavaScript enabled, the only thing that will happen is that he’ll see a fallback font.

jQuery

We are not going to use the entire power of jQuery in this tutorial. However, it does make things easier for us, so we are going to include it to our project even though it is 19 extra kilobytes.

You can download the minified and YUI compressed version of jQuery over at their official web site (http://jquery.com/) simply by checking the “Production” box and clicking the big “Download” button. Call this file jquery.js and place it in our JS folder.

To use the power of jQuery in our template, we’ll obviously need to call it. You should place the code in your head section.

1
<script type="text/javascript" src="js/jquery.js"></script>

That’s it; jQuery now loads with the page and allows us to use all of its properties and methods!

Cufón

I was talking about a font-smoothing JavaScript code before, but that’s not actually it. Cufón lets us use whichever font we want in our design without the reader having it necessarily installed.

I’m not going to cover the basics of using Cufón since Jeffrey Way already does an outstanding job at this over here: http://net.tutsplus.com/videos/screencasts/the-easiest-way-to-use-any-font-you-wish/.

Just download Cufón from this site: http://cufon.shoqolate.com/generate/ , and use the online font converter to convert the Myriad Pro font to a JS file. If you are not sure how to do so, check out Jeff’s tutorial!

Save the Cufón file in the JS folder and call it cufon.js, and the font file myriadpro.font.js.

Once those are in the right directory, we need to call them from our index.html file. Add script tags in the head section of our markup document, and use the src attribute in order to call the files. Don’t forget that the script tag is not auto-closing. You cannot use the syntax <script />. Doing so will result in a failed validation. The syntax you should use is <script></script> even though the tag is empty.

1
2
<script type="text/javascript" src="js/cufon.js"></script>
<script type="text/javascript" src="js/myriadpro.font.js"></script>

If you reload the page, you’ll see that… nothing actually happened. This is because we need to call the Cufón text replacement and specify which tags that should be parsed.

Open a new script tag, but instead of calling an external JS file, we will just write our code directly in our HTML file. We can do this because we are using one single line of code. Should your code be longer however, you should place it in an external file. The method to trigger the replacement is Cufon.replace() and it takes the tag that should be replaced as argument. Because we’ve already called jQuery, we can also use its CSS Selector engine to catch the right tags.

The code you could place in your HTML would look like this:

1
2
3
<script type="text/javascript">
    Cufon.replace('h1, h2, h3, h5');
</script>

We are simply targeting the heading tags, and Cufón is making the magic happen. Reload the page and you can now see how Cufón smoothly replaced all our h tags with images built on the fly!

What happens if the reader doesn’t have JavaScript enabled? Well the font used is the one specified in out CSS! If the reader owns Myriad Pro, it is going to be used, even though it won’t be smoothed, and if not, one of our fallback fonts is used. It is the beauty of progressive enhancement.

The Slideshow

Our final step will be about making the slideshow alive. In order to do so, we will use an incredibly useful jQuery plugin called the jQuery Cycle Plugin. You can fetch it over here: http://malsup.com/jquery/cycle/lite/ . We will not use any complicated transitions, so the Lite version will work just fine. The great thing about it is that it is only 3kb!

Make sure you are downloading the YUI compressed version of the plugin, then place it in our JS folder and call it cycle.js. We then obviously need to call it from our HTML. Place the call to the Cycle plugin under the call to jQuery in order to be sure the plugin will be appended to the library!

1
<script type="text/javascript" src="js/cycle.js"></script>

We then need to fire the effect using some JavaScript code. This is where we can specify some options to such as Previous and Next commands, delay etc. We will put this code in a new file called slideshow.js in the JS folder obviously, that we’ll then call from our HTML.

Before starting coding, we need to decide what we want our slideshow to do. The default behaviour is to take every element from a specified container, and then make them slide, hiding the others. This is good since we put all our slideshow images in a container with an id of “Slides”. How do we want it to behave? Well, each 5 second, it should change slide, but it should also change slide if we click on the Previous or Next button. We also want the slideshow to pause if we hover our mouse over it. This is good because it gives people time to click if they are interested in the current slide.

Luckily, all this is extremely easy to do using the Cycle plugin. Once the DOM is ready, make jQuery fetch the #slides container, and start the slideshow using the cycle() method. Then using an anonymous object that we pass in as an argument, we can set the behaviour to the one we want.

This is what your code should look like:

1
2
3
4
5
6
7
8
9
$(document).ready(function()
    {
        $('#slides').cycle({
                prev    : '#previous-slide',
                next    : '#next-slide',
                timeout : 5000,
                pause   : 1
            });
    });

What do those properties stand for? Well prev and next are obviously the ID of our Previous and Next commands, delay is the time between each slide in milliseconds, and if pause is set to 1, then the slide will pause on hover.

If we reload the page, we can see the image sliding nicely, and the previous and next commands working just fine! However, the title is inexorably the same. We can solve this little problem by calling a function before each sliding. The function will just get the next slide’s alt attribute and href attribute to be able to replace the h4 and the link correctly. This is what the function looks like:

1
2
3
4
5
6
7
function changeTitle()
    {
        var title = $(this).find('img').attr('alt');
        var href = $(this).attr('href');
        $('#slide-title').text(title).attr('href', href);
    }

However, this won’t work unless we specify that this function should be called before each slide change.

To do so, we simply need to specify the property “before” within our anonymous configuration object. This property should be set to the name of the function. You shouldn’t use quotes around the function’s name.

This is what the full working code looks like:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
$(document).ready(function()
    {
        $('#slides').cycle({
                prev    : '#previous-slide',
                next    : '#next-slide',
                timeout : 5000,
                pause   : 1,
                before  : changeTitle
            });
    });
function changeTitle()
    {
        var title = $(this).find('img').attr('alt');
        var href = $(this).attr('href');
        $('#slide-title').text(title).attr('href', href);
    }

Great, if we now reload the page we’ll see our slideshow work just as we wanted it to, and this only with a few lines of code! That’s the power of jQuery and its plugins.

Step Seven – Final Thoughts

We’ve now coded our entire website layout using xHTML 1.0, CSS 2.1 and JavaScript based on the template we designed in Part I. You can check every single file from the project and see that they are 100% valid! This is important to remember since it can greatly improve accessibility and the overall quality of your coding.

I sincerely hope you’ve enjoyed this series of tutorial, that you’ve learn some new techniques, and that you’ll now be able to make outstanding web templates yourself! I’ll be glad to see what you’ve managed to do in the comments.

Categories: WebDevelopment | Leave a comment

Webdesign from scratch part 1

original post: http://code.tutsplus.com/articles/design-and-code-a-slick-website-from-scratch-br-part-i–net-5160

 

Design and Code a Slick Website from Scratch – Part I

by 28 May 2009146 Comments

With the Internet becoming more and more popular every minute, a great-looking website is somewhat of a must-have. You could obviously pay a web designer to design one for you, but wouldn’t it be really cool to design and code it yourself? “Difficult”, you may say; but it’s actually not too hard once you’ve learned how to do it!

In this first part, you’ll learn how to design a neat-looking website that you can easily adapt to your business. It’s time to get started!

 


Step One – What We Will Be Making

I suppose you might want to know what our design will look like once finished. I’m not going to make you wait any longer; here is what we will be building throughout this tutorial.

The reasons this design will be fairly appealing to your readers are:

  • Usability, user-friendliness.
  • The “living” atmosphere, with the picture and shadows.
  • Content-centered, the layout doesn’t take the reader’s attention from the useful information
  • The blog and twitter integration creates a closer relationship between the reader and your company.

Step Two – Structure

Something utterly important when starting the design of a website is to define a clear structure that you will follow no matter what. The first reason this is important is because you want your content to be as visible as possible, and not lost in a messy layout. The second one is that you’ll want to guide your reader’s eye through all the information contained on the page. The human mind will start reading a web page from the top left and will scan it all the way down to the bottom right. For that reason, putting a sidebar at the left of your content could distract your reader and in a worse-case scenario, even lose him.

I’ve chose the following structure for this design:

There are a few reasons for which I chose such a structure:

  • As I’ve already said, it’s content-centred.
  • It has a professional website feeling to it; it doesn’t look like a blog.
  • It is not actually complicated to code!

Step Three – Getting Started

In this tutorial, I’ll be using Photoshop CS3 on Windows Vista, but you should be able to follow it with any CS version of Photoshop, since the techniques used are fairly easy. I’ll be sure to point out differences between Windows and Mac too, if there are any.

That being said, let’s get started! We are going to start with a blank document of 1600 by 1200 pixels, with a transparent background, a resolution of 72ppi and RGB 8 bit in Colour Mode should do just fine.

You may ask yourself why I’m using such a wide document. The reasons are simple:

  • It gives you spaces to work, and hence doesn’t look cluttered.
  • It shows you do care about widescreen resolutions when designing, which many web designers don’t.

Step Four – Setting Up Our Workspace

You’ll realize while reading this tutorial that I am somewhat of a guide geek. I simply love having rulers to guide me in my design process. You should therefore start by displaying rulers. Go to View->Rulers or simply use the shortcut Ctrl/Cmd + R. Make sure they are displayed in pixels by right-clicking on a ruler and choosing “Pixels” from the list.

Next, we will set up some vertical guides. Activate Snap (View->Snap or Shift + Ctrl/Cmd + ; ), and start by putting a guide at 800 pixels. This is where the snapping comes in handy because it “magnifies” the guide to the centre of the document. We will also need guides at 400px and 1200px. Why so? Well simply because 1200 – 400 equals 800 and that we want our design to display properly on 800*600 screens too.

The last thing we need to do is to set horizontal guides at 450px for the middle, and 300 and 900px for a top and bottom margin.
I usually also set guides at the edges of my document to grab the corners more easily.

This leaves us with a coherent grid layout that we will be able to develop for our design.

In this case I have just coloured our otherwise transparent background so that you can see the guides better.

Step Five – The Status Bar

We will start our design from the top and then design our way down to the footer. This ensures minimal issues with vertical spacing.

I like keeping things organized in my PSD, so we are going to start by creating a new Layer Group called Status Bar, in which we are going to keep all our layers related to this bar.

The Shape

Before going any further, we obviously need to make our background ready. We want it to take up the entire width and have a height of 50px. That’s why we are going to place a new horizontal guide at 50px.

Then, in a layer group called Box, create a new rectangle with the Rectangle Tool (U). The colour of this rectangle should be #f8f8f8, which is a very light gray, and not as bright and tiring for the eye as white.

 

The following step concerns the border. We want to separate this bar from the rest of the design, so a bottom border is appropriate here. Create a new layer called Border then grab the Single Row Marquee Tool, hiding under the Rectangle Marquee Tool (M), and select a line right under the shape we recently created. Fill the selection with #959595 using Alt + Backspace. Then go to Select->Transform Selection and hit the down arrow once in order to make the selection shift down by one pixel. Now fill it with white (#FFFFFF). This makes a pretty nice beveled border:

The final step is to add a little shadow to create some volume. Create a new layer called Shadow and add a clipping mask between the Background layer and this one using Ctrl + Alt + Click between those two layers. Grab the Gradient Tool (G) with a linear gradient from black to transparent, and make a 15px high gradient starting from the bottom of the box. Set the layer’s opacity to 15%.

Welcome Message

Now that our box is created, we can start populating it with some text and other useful things. We will start with the welcome message. In the Status Bar layer group, create a new layer called Welcome.

Now, with the Type Tool (T), and starting at 400px from the left border, we are going to write our message. Be sure to centre the text vertically within the box as well.

The font I’m using is:

  • Arial Regular
  • 12px
  • Smoothing: none
  • #515151

This will be our default paragraph font.

Actions

Let’s get done with the action bar. I like using such a bar in my web designs because it’s a place where you can place elements that just don’t fit anywhere else.

Create a new layer group called Action bar, in which we are going to draw aRounded Rectangle (U). It should be 30px high to leave 10px margin top and bottom and wide enough to wrap our links. Make it 55% opaque and align its right border to our centre guide.

Next, just write some links that would be relevant for your site. I chose login, sitemap, and license.

Notice that I’m still using the same Arial font with a white colour.

Search Box

A very important feature of this top bar is the search field. I’ve chosen an Apple-like form because I think it looks very smooth, and it’s actually very easy to design as well.

Start with the Rounded Rectangle Tool (U) with a radius of 10px, and make a shape that is 20px high in order to make the edges look perfectly round. Name this layer Field and put it in a new layer group called Search Box, align it with the 1200px vertical guide, and add the following layer styles:

Then, using the Custom Shape Tool (U), and the Magnifier Glass shape from Web.csh (which is a default shape but that you may have to load), make a little icon inside the field in order to show what the field is for.

Finally, type the word “Search” in the field using Arial and the dark grey we used for the welcome message.

That’s it! We’re done with the Status Bar, you can fold in all the layer groups to make our layer palette cleaner.

Step Six – The Header

The most important aspect of a web design is probably the header. That’s the place where you can unleash your creativity and make your website look astonishing. However, your header also needs to display a logo or a text bloc with the name of your company.

I’ve decided to use a picture as my header for this design, because it’s easy and fast to make, and it looks just brilliant. I found this great picture over at stock.xchng, but feel free to select your own. The great thing with using a picture as a header is that you can totally change the feel of your website just by changing the image. You can even have a different image on each page!

Adding the Image

First, we’ll need to create a new layer group called “Header”. In that group, using the Rectangle Tool (U) and the guides that we drew earlier, make a shape between 50 and 300px high. This is going to be our box. Then import your image into your document using drag & drop. Resize it, and create a clipping mask between the image and the shape.

Notice how we already have this really cool look to our design?

Logo

You should obviously put your own logo here, but for the purpose of the tutorial, we’ll just make an easy one using some typography tricks.

I’m going to use the font Myriad Pro, which should be installed on your computer with Photoshop CS. If not, you can try to find another cool font because Myriad is unfortunately very expensive.

Using this font:

  • Myriad Pro
  • 48px
  • #4d4d4d
  • Smoothing: Smooth

I’m writing the name of a ficticious company: Roadside. This layer is aligned to the 400px vertical guide.

Next, the subheading “Studio” is going to be written underneath it. I’m still using Myriad Pro, but this time with the following settings:

  • 12px
  • #6ebacd
  • All-Caps
  • Bold
  • Letter-spacing: 2300

This makes the subheading the same width as the company name, without taking too much attention from the reader. To keep things organized, I’m putting this into a layer group called “Logo”.

Now that we are done with the header, let’s get started with the huge part of the tutorial, the content!

Part Seven – The Content Box, Wrapper, and Tabs

To make the content box, we need to decide how high the footer should be. I think 100px is good; not too high nor too small. We don’t need to write a whole lot of text, so 50px is enough. Then we also want the bottom of the image to make the footer less boring. We’ll give that 50px too.

We should therefore put a new horizontal guide at 1100px. To keep things tidy, create a new layer group called Content too. I’ll explain later why keeping the PSD clean is very important, but for the moment, you’ll just need to believe me when I tell you it is.

The Box

Create a new Layer Group called Box, and using the Rectangle Tool (U), and the same light gray that we used for the Status Bar (#f8f8f8), draw a rectangle going from 300px to 1100px high, taking all the space horizontally.

Next, we need to create borders. We are going to use the same borders between the content box and the image that we did between the status bar and the image. Instead of doing the whole selection thing again, just fetch the Border layer in the Status Bar / Box layer group, duplicate it twice using Ctrl / Cmd + J, and call those two layers Border top and Border Bottom. Then put them in the Content / Box layer group. You can leave the Border Bottom layer as it is, and just place it at 1200px high; however, you’ll need to flip Border Top vertically to have a consistent border around the image. Enter Free Transform Mode (Ctrl / Cmd + T), right-click the box, and select Flip Vertical. Put the border at 300px high.

The final step is to add shadows to the top and the bottom of the box. We are going to do the same thing we did before for the shadow; create two layers over your Shape, Shadow Top and Bottom, and add a clipping mask between them. Then grab the Gradient Tool (G) with a black to transparent gradient, and make a 15px gradient on each layer. The layers should be 15% opaque.

Page Wrapper

Instead of starting with the tabs and the navigation menu, we’ll just make the page wrapper first in order to set the width and have something to go after.

We want 50px between the header and the tabs, to make the design breathe. The tabs are going to be 35px high. We should therefore set up some guides (yes, again!) at 350 and 385px. To even things out, the page wrapper is going to be 365px high, so we’re putting our last guide at 650px.

Next, create a new layer group, “Wrapper” in our Content group. This is where we are going to put our layers now. You also need three layer groups inside it: Box, Slideshow, and Message.

Out vertical guides will now come in handy. Using the Rectangle Tool (U), make a white (#ffffff) rectangle in the newly defined box. Then add the following layer styles to it:

This is what it should look like:

The Slideshow

Let’s start with the slideshow. Slideshows, carousels, sliders, or whatever you want to call them, are an effective way to display a lot of pictures, diagrams, or any other media in a very small box. It’s fairly easy to set up in a website, and with some smooth JS effects, it does look really cool! That’s why I like slideshows very much.

But before we begin with the content of the page wrapper, make 15px worth of padding around the box (yes, you should use guides). We also want to cut this wrapper in two parts; one with the carousel, and one with the little text box. Luckily, our 50% width guide does this for us. However, we don’t want the text and the slider to be right next to each other, so we should set 15px padding on each side of the middle of the box.

This is what it should look like:

As you can see, the 50% height guide separates our box in two vertical boxes too. Let’s take advantage of this. Here’s what the structure of our box will be:

Now we can really start building the slideshow. Make a black rectangle covering the entire Image box (Cf. Illustration), then add a 1px inside stroke with the colour #a7a7a7. Next, create a new layer called “Image” over your rectangle and add a clipping mask between them. You can now import the picture you want, resize it, and make it look good. I’m using one of my web designs that you can find here if you want to use it for the purpose of the tutorial. In a live website however, you should obviously use your own.

Now we need to create our command panel. Using the Rounded Rectangle Tool (U), with a radius of 5px and a black colour, create a box that’s 30px less wide than your image. Make sure to hide the rounded corners at the top behind the image. Set the layer’s opacity to 55%. Considering I’m a Layer Group maniac, I’ve created a new one called Commands, which I put behind our image layer.

Then, using the Polygon Tool (U) with three sides, make two triangles to act as your previous and next commands, then, with Arial 12px white, write the title of your image.

Great! Now we’re done with the slideshow. Notice how it is extremely simple, nothing distracting from the image. That’s what I meant with content-centred and not layout-centred.

The Message

Before we go any further, we should just add a separator between our two blocks. As I said before, the middle of the document cuts the box in two equal parts, but we still want to emphasize that using a 1px border. Create a new layer called Separator, and then use the Single Column Marquee Tool to make a line at 900px wide. Fill it with black, and use the Rectangle Marquee Tool (M) to clear the exceeding parts of the line. Set the layer’s opacity to 30%.

Ok, now that we’ve done that, we have to find a catchy headline for our welcome text. The title here will obviously depend on what kind of website you are building. I chose to design a layout for a web design agency, so I’ll just put “We build great websites!”. Yes, I know it does sound a bit over-confident, but the thing is it does push the reader to look further into your site.

This heading will be the second element visitors will see after the logo, so we have to make it stand out. I’m still using the font Myriad Pro for my headings:

  • Myriad Pro Regular
  • 24px
  • Smooth
  • #6eb9cc

This will be the default heading font.

Notice how the colour we use is the same one that we used for the subheading in the logo?

Use our guides to place the heading with the correct padding.

I’m not going to bother with the text right now, since this is more about the design than the content. So, I’ll just use a simple Lorem Ipsum placeholder text.

A few details about text in web design: Don’t forget that text is ugly. Text makes a web design look cluttered, and difficult to read. To prevent this, we will need to make our text look nice. A trick for doing this is to have as little text as possible, to keep the paragraphs short, and to use 1.5x line spacing. This last tip makes your text look friendlier and more readable than a single line spaced text.

Click and drag with the Type Tool (T) in order to create a text box, and then fill it with some random text. I’m using my paragraph font, Arial, here:

  • Arial Regular
  • 12px
  • Line-spacing 20px
  • #4d4d4d

The following step will be to add some contact information. It is a good idea to provide this on your home page, considering it creates a closer relationship with your client, showing that you’ve got nothing to hide.

To emphasize this information, we’ll use two of Photoshop’s default custom shapes: the phone and the letter from the file objects.csh.

Start with your phone number. Grab the Custom Shape Tool (U), and select the phone shape. Using the colour #7d7d7d, draw a small phone centred on the 600px guide, then using our Arial font, enter your phone number. I decided to put this in a new layer group called “Contact Info”.

On the same line, do the same with your address. Since an address is rather long, I decided to split it on several lines, but you can decide to keep it on a single one if it fits your needs.

M’kay, now that this welcome page is done, let’s make our tabbed navigation menu.

Navigation Bar

I chose tabs because I think it’s a great way to display pages with. It feels really straight forward and natural because of the fact that we are used to flicking through tabs in real life. I also decided to include previous and next commands. This may not be relevant to your site, but in this case, your reader will land on this welcome screen, then he might want to go and take a look at the portfolio, then read something about the company, and finally contact us if he is interested in our services. To make this process more easy, next and previous are really handy.

We’ll need to create a new layer group under the “Box” layer group before we get started. Call it Tabs. To make things tidier, I’ll just create a new layer group for each tab too, respectively Previous, Home, Portfolio, About, Contact, and Next. We won’t type any text right now. Instead, we will just create the structure. To give you an idea, this is what it will look like once it’s finished:

Let’s start with the right side. Grab your Rounded Rectangle Tool (U), with a black colour and a radius of 5px, and then make a little nice rounded rectangle at the top right edge of the content box. Hide the rounded corners at the bottom behind the box. Don’t forget that you want the top of your tabs to be 50px under the header image, so use the created guide to help you.

We’re not done yet. We need to get rid of the rounded corner on the left. To do so, use the Convert Point Tool, hidden under the Pen Tool (P), click on the path to make the anchor points appear, then, with the Delete Anchor Point Tool, delete to two anchor points at the extreme left. Photoshop will try to compensate this by dragging the handles and this will create a weird shape. Just grab the Convert Point Tool again, and click on the two remaining anchor points on the left to reinitialize the handles. Review the animation below to make things clearer:

Great, now we just need to set the opacity to 55%. The next step is to add the rectangles for each page. Don’t forget to put it in the correct layer group. You should obviously use the Rectangle Tool (U), with a black colour, and then set the opacity to 55% as well. Leave some margin between each rectangle too to make things cleaner. This is what you should have now:

The last part of the structure is the previous button shape. You’ll need to use thePen Tool (P) for this one, so go ahead and learn how to use is it if you don’t already. It’s not a waste of time: the Pen is probably Photoshop’s most powerful tool.

If you know how to use the Pen Tool (U), draw a shape like this one:

Then place it in the Previous layer group, and on the left side of the current shapes.

For the links, I’m using Myriad Pro again, this time size 14, and #f6f6f6 as colour. Since “Home” is our current page, we are going to set its weight to bold in order to emphasize it. I usually show the hover effect in the menu as well, so that explains why we should put the “Portfolio” link in blue #6eb9cc. The links are obviously centred to give it a nicer look.

Now, using the same technique that we used to create the slideshow commands, we should now create two arrows, one pointing left, and one right, to symbolize Previous and Next. Make your Polygon Tool (U) burn!

This looks great! However, it does look a bit weird to have the blue link all alone. To symbolize the fact that it is a hover effect, we’ll just add a cursor over the link. You can grab this one:

This is what your finished tabbed navigation menu should look like:

It does look pretty neat doesn’t it? Believe it or not, we are now done with the Wrapper. This was the more “corporate” area of our design. What we are going to do now is the more entertaining part, I’m talking about the blog module and the twitter module.

Step Eight – The Blog Module

We will need to set up a few guides here as well. To keep consistency in our design, we will have a 50px margin between the wrapper and the modules. This makes us place a guide at 700px high. We also need a new layer group inside the content layer group called Module 1 – Blog.

I’m a huge fan of icons in web design. It adds a little extra something that gives a nice overall feeling to the design. However, the icons we use have to be relevant for the content, and should fit the rest of the design. For this tutorial, I chose Crystal Project by Everaldo, which is a huge icon set under LGPL license, which allows us to use them wherever we want without having to pay. And the best thing about this is that they are simply gorgeous! You can reach them here.

Once this is downloaded, we need to find an icon that suits our needs. We want something reflecting the idea of blog, news, or updates. In my opinion, the news.png icon from the mimetypes folder does this more than well. I chose the 64*64px size, which is just the right size for our design.

 

The Header Bar

Great, now import it into your document by Drag & Dropping it. Resize it a little bit, if you find it necessary. I don’t find it too big, so I’ll just keep it like so. Align it with the intersection of the 700px high and 400px width guide.

Now we need to give our module a header. Instead of using Myriad Pro here, which was our convention for headers, we’ll use Arial. Why? Well I think it looks better. But in order to make it look like a heading, we’ll add a black rounded rectangle behind the text.

Grab your Rounded Rectangle Tool (U), with a black colour, and a radius of 5px, and make a rectangle that is about 30px high and that stops 15px before the middle of our document. We’ve already got a guide there, so there is no need to add a new one. Hide the left corners behind the icon to show that the icon is related to the entire block, and finally set the layer’s opacity to 55%.

Now we just need to add our text. I think making this blog and twitter area a little more intimate is a good idea. So instead of writing something like “Latest News”, we’re going to write something a bit longer and more personal: “Latest entries from our blog”. Use this font:

  • Arial Regular
  • 12px
  • #f6f6f6
  • Smoothing: none

And write our text. Be sure to offset it a little bit from the icon to keep things spaced. I decided to put those layers in a layer group called Header Bar too.

Entries

Now we need to populate this module with a few entries. The good thing here is that we just need to create one, then duplicate it and just change the text.

Start by putting a vertical guide at 445px. This adds an extra 15px margin to our block, which shows that the header actually contains the entire entry section, and not just a simple link.

I’m going to use a lipsum placeholder text here as well, but you can use an existing entry from your blog if you’d like.

For the title of the entry, I’ll use our heading font, with a smaller size however:

  • Myriad Pro Regular
  • 18px
  • Smooth
  • #6eb9cc

We are not going to offset this the entire way to our recently added guide at 445px. Instead, we’ll start typing at 430px, and offset the content of the entry to 445px. Place it 15px under the header bar.

Then we need to add some meta info such as the author and the date. This is not very important information, so we’ll type it in a small font:

  • Arial Regular
  • 10px
  • Smoothing: None
  • #707070

To make our entries a little more condensed, we’ll just put this info on the same line as the title. I just chose a random name and date here.

Align this text to the right.

For the content of the entry, we’ll just put a few descriptive lines to keep as little text as possible on the screen. This text should be offset to 445px. Using the Type Tool (T) we can make a paragraph bloc to make thing easier for us. The font I’m using is:

  • Arial Regular
  • 12px
  • Smoothing: none
  • #525252

As you may have noticed, I put those three layers, Title, Meta, and Content in a layer group called “Entry 1”. This will make things easier for us since we will just duplicate it two times by dragging them over the “New Layer” button. Rename those groups”Entry 2″ and “Entry 3”, respectively, and place them one under each other. You should obviously leave some margin between them, but just not too much or it will look weird. This is what you should have:

You’ll have to agree that it does look pretty awkward with the same entry three times. To change this, just generate some new Lipsum and place it there.

Read More Button

What if the reader actually wants to visit the blog, you might ask. Well the first thing is that the titles will be links in the coded design. If your reader just wants to go to the home page of your blog however, he won’t be able to do it if we leave it like so. We could have added a link to the header bar, but that doesn’t look half as cool as a button saying Read More!

Create a new document with a transparent background that is 210*25px. Create aRounded Rectangle (U) with a radius of 10px. The colour doesn’t matter. Make sure to make the shape 20px high so that the edges blend into a half-circle. Leave some space at the bottom and on the right for the drop shadow.

Now we need to spice up this button by adding a few layer styles: a drop shadow, a gradient overlay, and a stroke.

This style gives a nice little 3D effect to the button:

Then we need to add text to this. I’m using Myriad Pro, size 12 and #393939. Don’t forget to centre the text!

Final step of this button will be to add a bevel to the text:

Now we just need to import this into our document by drag & dropping, and we’re all set! I decided to align it to the right, but it does look good centred or on the left too, so it’s up to you to choose. I also put those two layers in a layer group Read More, to make it easier to move around.

Doesn’t this look just awesome? Anyway, now that we are done with the Blog module, it’s time to get done with the Twitter module!

Step Nine – The Twitter Module

Since this is pretty much the same thing as the Blog module, it will probably go a lot faster.

The Header Bar

To get started, just duplicate the header bar from the Blog Module and put it on the other side of the middle of the document, then place it in a new layer group called “Module 2 – Twitter”. Replace the text with something like “Follow the Roadside Team on Twitter”. Make this message really personal. Indeed, Twitter is something that should be friendly and personal, because it allows your readers to get closer to you.

I decided to use the Twitterific icon for the purpose of this tutorial, since it is for educational purpose only. However, should this website go live, we would have to use another icon to comply with copyright restrictions. But I just think it looks cool, so I decided to use it here. You can fetch it on Wikipedia by searching for Twitterificfor example.

Include the icon to your document, resize it with Ctrl / Cmd + T, and place it instead of the newspaper. I decided to make this icon a bit bigger than the newspaper, simply because it didn’t look good otherwise.

Tweets

Next we’ll have to indent our content. Place one vertical guide at 830px and another at 845px to give us a solid base to work with, we also need a guide at 770px high to create a 15px margin between the twitter icon and the first tweet.

What are we going to put here? Each member of the team will have his own line with his latest tweet. A tweet is usually built with a profile picture, a name, and a sentence.
Create a new layer group called “Tweet 1”, which we are going to duplicate to create our other Tweets.

We’ll start with the picture. You can find pictures at stock.xchng in their portraits category.

Before we add this picture, we will need to create a shape to make a clipping mask. Use the Rectangle Tool (U), to create a square that is 35*35px, and add a 1px inside stroke to it with a colour of #202020.

Once you’ve found a picture you like on stock.xchng, we can add it to our design. Simply drag & drop it on the design, and create a clipping mask between the recently created Shape layer and the picture. Resize the picture with Ctrl / Cmd + T, if necessary.

Now we need to add the name of the team member. I’m going to start with the name I used in the blog posts, to show consistency. I’m using Myriad Pro here, as usual with our headings:

  • Myriad Pro Regular
  • 18px
  • Smooth
  • #6eb9cc

Be sure to leave a 15px margin between the picture and the name by adding a new guide.

Now, let’s add our status. I’m using Lipsum here as usual. Be sure not to write more than one line because it might break our design otherwise. Use our paragraph font as usual:

  • Arial Regular
  • 12px
  • Smoothing: none
  • #525252

You don’t need to make a paragraph block here since we’re only writing a single line.

Great, now that we are done, we can simply duplicate the layer group, “Tweet 1”, to create the other Tweets. Rename your layer groups to Tweet 2, 3 and 4, respectively. Leave 15px margin between each one.

It’s highly improbable however that every single team member is called Jonathan Davidson, so we’ll need to change their names, their pictures, and also their status to make it more plausible.

Now, the only thing missing compared to the Blog module is a “Read More” button. So we’ll just duplicate the “Read More” layer group from the Blog module, put the duplicated group in the Twitter Module group, and rename it “Get More Tweets”. We will not leave the same “Read More” message in order to make things look more personal and to show that we actually spent some time doing these buttons.

The only thing to do is to change the text layer to “Get More Tweets!”. The exclamation mark fits the informal Twitter spirit. Align this button horizontally with the Read More one, and vertically to the right.

Congratulations! We’ve now finished the content part of the design! It was really a tough nut to crack. Things will be easier from now on. We only have the footer left. Let’s just take a moment to admire what we’ve been creating for some hours now:

We’re really getting somewhere aren’t we?

Step Ten – Footer

We could have placed the footer text directly under the content. To be honest, when preparing for this tutorial, that was exactly what I did. But I found that something was missing; the design wasn’t really balanced. Adding the bottom of the header image to the footer gives a nice frame in which the content can live, so that explains why we are putting it there.

We don’t want the image to be too big though; 50px seems appropriate. So, we’ll add a new horizontal guide at 1150px in order to help us draw the shape.

We should create a new layer group called Footer, in which we are going to have the groups Image and Bar.

Image

Use the Rectangle Tool (U) to draw a rectangle taking 100% of the width and 50px high. This layer should be in the Image group.

Now, Drag & Drop our stock header image into our document again, and create a clipping mask between the image and the Shape layer. Use Ctrl / Cmd + T to place it correctly.

Footer Bar

Okay, we are done with the footer image. We now need to make our footer bar. Create a new group in the Bar group called box, and with the Rectangle Tool (U), fill the remaining transparent part of the design with #f8f8f8.

Now create a new layer called Shadow, create a clipping mask between Shadow and Shape, and with the Gradient Tool (G), make a black shadow that is about 15px high. Set the layer’s opacity to 15%.

Finally, to finish this box, duplicate the Border Top layer from the Content box usingCtrl / Cmd + J, drag this layer into the Footer Bar Box layer group and rename it Border Top.

Finally, create a new text layer, and with our paragraph font:

  • Arial Regular
  • 11px
  • Smoothing: none
  • #525252
  • Text-align: Centre

Write some copyright license or anything you want to put in the footer. I decided to put Copyright, the company name, and a little “All Rights Reserved” too. In order to space things out, I put this on two lines. Align this text layer with the 800px wide guide.

Advertisement

Step Eleven – Admire!

Yes, that’s it, we are done! All this struggle and now we’re finished, but the final result was probably worth it, right?

Step Twelve – Final Thoughts

We’ve now designed our website using Photoshop. In Part II of this tutorial, to be released tomorrow, you’ll learn how to turn this PSD into a semantic, standards-compliant web page using xHTML 1.0, CSS 2.0 and JavaScript.

I sincerely hope you’ve enjoyed this tutorial, that you’ve learn some new techniques, and that you’ll now be able to make outstanding web designs yourself!

Categories: WebDevelopment | Leave a comment

Five copyright pitfalls for designers

orignal post: http://code.tutsplus.com/articles/5-biggest-copyright-pitfalls-for-web-designers–net-14754

 

5 Biggest Copyright Pitfalls for Web Designers

by 29 Sep 201047 Comments

When it comes to design, copyright is often a very muddled gray area. Just as the lines between plagiarism and homage are often confusing, so too is the line between infringing and non-infringing use of copyrighted material. Since it is natural and even expected of Web designers to incorporate elements from other sites and other creations, it is important to understand the risks and hazards when it comes to copyright in Web design. As such, here are five of the most common copyright pitfalls Web designers face and how to best avoid them.

 

1. Images

The most common issue many web designers face when it comes to copyright law has to do with the images they use in their layouts. For some designers, it is common practice to find images they need by doing a Google search or pulling an unlicensed image from a stock photo library.

The problem with this is that, as Google itself warns, these images are usually protected by copyrights, and their use as part of a layout almost certainly constitutes an infringement. Historically, artists have not had many resources for finding such infringements, but as detection tools improve in quality and drop in price, more infringements are being detected.

It is important that you always make sure you have the rights to use an image in your layout, even if it is just a placeholder.

If you need to locate free images that you can use legally, search for Creative Commons-licensed work on Flickr or visit StockXchng (sxc.hu) to find high-resolution images you can use legally – as long as you are sure to follow the terms of the licenses carefully.

2. HTML/Source Code

Most Web designers are expected to crib some of their source code, either from other sites or their previous work. But where taking a portion of a page to get a table format or a few CSS elements from a stylesheet likely won’t raise any alarm, large scale copying, such as taking an entire style sheet or whole theme elements, likely constitutes copyright infringement.

The problem is that HTML code, much like computer software, is considered an original work of authorship, even if it is created with the help of tools, and enjoys copyright protection. Though you can’t copyright the general look of the site, meaning Google can’t copyright a white background with a center logo, you can protect the code that created that work.

The best way to avoid any issues over your source code is to create as much of it yourself as possible and limit any copying to only things that you could trivially reproduce but wanted to save time on. The more it becomes clear where your code came from, the more likely the copyright holder may become upset.

3. Platform Licensing

The days of static websites went out nearly a decade ago. Most sites today are built on top of a platform of some variety or another, be it WordPress, Joomla, Presta Shop or some other software. However, many of these tools have strict and/or unusual licensing requirements and it is easy for designers to run afoul of their terms when setting up a new site.

The most common mistake is installing a purchased application on too many sites; for example, by buying a one-domain license on ThemeForest for an application, but using it with multiple clients.

However, even open source applications carry risks as many designers, in an attempt to keep the site clean, remove attribution lines in the code and files on the server that are required as part of the license.

When using any software to build a site, take a moment to read thorough the license and understand what it means. Follow those terms closely. Developers are constantly becoming more savvy about tracking down those who violate their licenses and even authors that license under the GPL are becoming more aggressive about enforcing their terms.

4. Open Source Blunders

A related mistake comes when web designers use and publish works based on open source code, particularly GPLed code (which includes many WordPress themes) and forget to either retain the license information and/or fail to donate their modified code back to the GPL.

If you create a derivative work of a GPL-licensed one, such as making a GPL WordPress theme a different color, the new theme has to be licensed under the GPL.

If you are unsure of whether your new work meets the requirement for GPL “inheritance”, this 2001 article by Lawrence Rosen (http://www.sitepoint.com/article/public-license-explained/) explains it quite nicely.

5. Dummy Copy

Though the use of dummy text is largely a hold over from the print design world, many web designers continue to use it for various reasons. It can pose a great risk if the dummy copy is pulled from another site. Even if the copy is just for testing purposes, it still constitutes an infringement. It may be unwittingly harming the original authors if the search engines have detected the test site.

Generally speaking, it is best to either use content from the client’s current site if possible, or true lorem ipsum text if it isn’t (http://www.lipsum.com/). Considering that lorem ipsum text is actually more flexible than using articles and content from other sites, it makes sense in nearly every regard.

Be especially careful of scraping RSS feeds for the purpose of filling up a test application or blog, this is especially frowned upon by bloggers and may have your test site mistaken for a spam blog.

Bottom Line

In the end, it is important to keep copyright infringement in mind when designing websites and services. This is especially crucial if your test sites are public facing or may be indexed by the search engines – as you may find your test pages taken down by your host.

However, even if you test solely on a private server, it’s worth keeping these issues in mind so you do not pass along an infringing site to your clients, even by accident. Nothing will sour a relationship with a client faster than them receiving cease and desist letters or take-down notices for content in your layout.

Given the minimal amount of effort that it takes to remain on the right side of copyright law, it doesn’t make sense to even take the chance. It only takes a few minutes to do things correctly but it takes just one copyright infringement complaint to sandbag an entire design career.

Categories: WebDevelopment | Leave a comment

Create a free website or blog at WordPress.com.