Faits:
A. Par acte notarié du 26 août 1997, X._ SA a vendu à A._ et à ses deux enfants B._ et C._, par parts égales, plusieurs unités d'étage sises dans un immeuble encore en construction, pour le prix de 1'680'000 fr. Les acheteurs ont pris possession des immeubles le 1er décembre 1998. Le 24 janvier 2001, la venderesse a invité les acheteurs à payer le solde du prix de vente de 50'000 fr.; ceux-ci s'y sont refusés tant que certains travaux de finition n'étaient pas exécutés.
B. Le 18 février 2004, la venderesse a ouvert action contre les acheteurs en paiement solidaire de 50'000 fr. Statuant en unique instance cantonale par jugement du 25 mai 2009, la IIe Cour civile du Tribunal cantonal valaisan a rejeté la demande; en résumé, elle a retenu que la créance en paiement du solde du prix était éteinte par compensation avec la créance des acheteurs en diminution du prix découlant de divers défauts des immeubles.
C. La venderesse (la recourante) interjette un recours en matière civile au Tribunal fédéral, concluant principalement à ce que les acheteurs soient condamnés solidairement à lui payer la somme de 50'000 fr. avec intérêt à 5 % l'an dès le 1er décembre 1998, sous suite de frais et dépens. Les acheteurs (les intimés) proposent le rejet du recours dans la mesure de sa recevabilité, avec suite de frais et dépens.

Considérant en droit:
1. La recourante se plaint d'abord d'une violation de l'interdiction constitutionnelle de l'arbitraire (art. 9 Cst.) dans l'application de l'art. 66 du code de procédure civile valaisan du 24 mars 1998 (CPC/VS; RS/VS 270.1), disposition de droit cantonal qui précise notamment à son premier alinéa que "sous réserve de la maxime d'office, seuls les faits allégués en procédure sont pris en compte". De l'avis de la recourante, la cour cantonale a retenu des faits qui n'avaient pas été régu-lièrement allégués. Pour leur part, les intimés invoquent dans ce contexte le quatrième alinéa de l'<ref-law>/VS, qui précise que "toutefois, le juge peut tenir compte ... b. de faits patents, implicitement admis par les parties et non allégués par inadvertance (et) c. de faits révélés par une expertise écrite".
1.1 Sauf dans les cas cités expressément à l'<ref-law>, le recours ne peut pas être formé pour violation du droit cantonal en tant que tel. En revanche, il est possible de faire valoir que la mauvaise application du droit cantonal constitue une violation du droit fédéral, en particulier qu'elle est arbitraire au sens de l'art. 9 Cst. ou contraire à d'autres droits constitutionnels. A cet égard, le Tribunal fédéral n'examine le moyen fondé sur la violation d'un droit constitutionnel que si le grief a été invoqué et motivé de manière précise (<ref-law>; <ref-ruling> consid. 2.3).
En matière d'application du droit cantonal, arbitraire et violation de la loi ne doivent pas être confondus; une violation de la loi doit être manifeste et reconnaissable d'emblée pour être considérée comme arbitraire. Le Tribunal fédéral n'a pas à déterminer quelle est l'interprétation correcte que l'autorité cantonale aurait dû donner des dispositions applicables; il doit uniquement examiner si l'interprétation qui a été faite est défendable. Il n'y a pas arbitraire du seul fait qu'une autre solution paraît également concevable, voire même préférable (<ref-ruling> consid. 4.4.1).
1.2 En l'occurrence, les défauts retenus par la cour cantonale ressortent de l'expertise judiciaire dont la recourante ne conteste pas le résultat (cf. jugement attaqué consid. 7 p. 18 ss; dossier cantonal p. 477 ss et 525 ss). Bien qu'assistée d'un mandataire professionnel, la recourante n'a pas soulevé d'objection contre les questions posées à l'expert au motif qu'elles porteraient sur des faits non allégués; elle a au contraire elle-même requis l'expert d'indiquer les "éventuels défauts" des parties privatives et communes dont elle serait responsable (cf. dossier cantonal p. 428 et 472 s.). En possession de l'expertise et de son complément, la recourante a renoncé à un débat final et, dans son mémoire-conclusions déposé suite à la renonciation à plaider, elle n'a soulevé aucune objection relative à un éventuel défaut d'allégation (cf. dossier cantonal p. 654 ss). Dans ces circonstances, en tenant compte de faits révélés par l'expertise judiciaire écrite, les juges cantonaux n'ont pas fait un usage insoutenable de l'<ref-law>/VS.
La recourante soutient que les intimés n'ont pas allégué que le descriptif de construction faisait partie intégrante du contrat. Or, les intimés ont allégué que l'immeuble vendu ne correspondait pas au descriptif de vente (cf. allégués nos 39 et 152, mémoire-réponse p. 3 et 15, dossier cantonal p. 70 ss, spéc. p. 72 et 84), respectivement que le descriptif de construction faisait partie intégrante du contrat de vente (cf. mémoire-réponse p. 22 ch. 1 § 2, dossier cantonal p. 70 ss, spéc. p. 91). Il n'y a pas arbitraire à considérer qu'il s'agit d'une allégation qui suffit aux exigences de l'<ref-law>/VS.
La recourante soutient aussi que les intimés n'ont pas allégué qu'elle avait une obligation de construction. Or, cette obligation est patente pour le vendeur d'un immeuble en construction. Le contrat de vente produit par la recourante en annexe de son mémoire-demande précise d'ailleurs que le prix convenu "comprend l'engagement de la venderesse d'entreprendre et d'achever entièrement les travaux de construction et de finition" (cf. acte de vente p. 8 in initio, dossier cantonal p. 15 ss, spéc. p. 22), et les intimés se réfèrent expressément à cette clause dans leur mémoire-réponse (cf. mémoire-réponse p. 18 ch. III § 1, dossier cantonal p. 70 ss, spéc. p. 87). La cour cantonale n'a pas fait d'application insoutenable de l'<ref-law>/VS en retenant cette obligation de la recourante.
La recourante soutient enfin que les intimés n'ont pas allégué que les parties avaient contractuellement convenu d'une prolongation de la garantie pour défauts. Or, l'acte de vente produit par la recourante précise que "pendant la durée du délai de garantie de 2 ans, les acquéreurs ont le droit de faire valoir en tout temps les défauts" (cf. acte de vente p. 8 in fine, dossier cantonal p. 15 ss, spéc. p. 22), clause que les intimés ont expressément reprise dans leur mémoire-réponse (cf. mémoire-réponse p. 26 in medio, premier alinéa en caractères gras, dossier cantonal p. 70 ss, spéc. p. 95). En retenant cette clause contractuelle, la cour cantonale n'a derechef manifestement pas appliqué l'<ref-law>/VS de manière insoutenable.
2. Invoquant l'<ref-law>, la recourante reproche à la cour cantonale d'avoir violé le droit fédéral en admettant des prétentions dues à des défauts, nonobstant l'absence de faits allégués conformément au droit de procédure. Il n'y a pas lieu d'examiner plus avant ce grief, dès lors que la prémisse d'un défaut d'allégation est erronée et que la recourante ne se plaint au surplus pas d'un renversement du fardeau de la preuve.
3. La cour cantonale a qualifié l'acte passé entre les parties de contrat mixte combinant des éléments du contrat de vente et du contrat d'entreprise. Selon la recourante, il s'agirait d'un contrat de vente d'une chose future auquel s'applique notamment l'<ref-law>, qui impose à l'acheteur de vérifier aussitôt qu'il le peut l'état de la chose reçue et d'aviser sans délai le vendeur s'il découvre des défauts; elle soutient que l'avis n'a pas été donné dans les délais de cette disposition.
Toute l'argumentation de la recourante est fondée sur la prémisse erronée que la clause de l'acte de vente modifiant les règles légales sur la garantie n'a pas été valablement alléguée et ne peut en conséquence pas être prise en compte. Or, selon cette clause, manifestement inspirée des art. 172 et 173 de la Norme SIA-118, les intimés avaient le droit de faire valoir "en tout temps" les défauts "pendant la durée du délai de garantie de deux ans". La règle des art. 201 ou 367 CO ne s'applique pas. Il n'y a dès lors aucun intérêt à se prononcer sur la qualification de l'acte passé entre les parties.
4. La cour cantonale, se fondant sur la jurisprudence publiée du Tribunal fédéral, a admis la qualité des intimés pour agir en réduction du prix également pour les défauts affectant les parties communes de l'immeuble. La recourante leur conteste cette qualité.
L'action en garantie des défauts de la chose découle d'un contrat bilatéral; elle appartient exclusivement à l'acheteur ou au maître de l'ouvrage. Les parts de propriété par étage ne sont pas vendues à la communauté, mais aux différents copropriétaires; chaque copropriétaire dispose ainsi de sa propre action en réduction du prix sur la base de son contrat avec le vendeur ou l'entrepreneur. Le défaut relatif aux parties communes constitue un défaut de chaque part d'étage prise séparément, car la part d'étage comporte une part de copropriété de l'ensemble de l'immeuble. Chaque copropriétaire est ainsi en principe en droit d'intenter l'action en réduction du prix pour des défauts affectant les parties communes (cf. <ref-ruling> consid. 5; <ref-ruling> consid. 3; la doctrine adhère à cette jurisprudence: cf. Schumacher, Die Mängelrechte des Käufers von Stockwerkeigentum - gesteigerte Komplexität, in Baurecht/Droit de la construction 1994 p. 3 ss, spéc. p. 4; Gauch, Der Werkvertrag, 4e éd. 1996, n° 1496 p. 414; Steinauer, Questions actuelles du droit de la propriété par étages, in Journées du droit de la construction 1989, p. 19; Gauch, in Baurecht/Droit de la construction 1987 p. 70 s. ad n° 85).
La recourante se réfère à un arrêt non publié (arrêt 4C.151/2005 du 29 août 2005 consid. 4.2.3) selon lequel les arrêts publiés précités ne trancheraient pas clairement la question de savoir si un copropriétaire peut, de façon générale, intenter seul l'action en garantie pour les défauts affectant les parties communes lorsque les travaux n'ont pas été commandés par la communauté des propriétaires d'étage. Force est de constater que ladite décision ne se prononce toutefois pas sur la question et ne contredit donc pas la jurisprudence publiée. Le grief est infondé.
5. La recourante reproche ensuite aux intimés d'avoir commis un abus de droit en se prévalant de défauts qu'ils n'avaient pas évoqués lors de la réception des parties communes de l'immeuble alors que ces défauts étaient apparents. Or, selon l'acte de vente, les intimés pouvaient en tout temps faire valoir les défauts durant le délai de garantie de deux ans. Au demeurant, il a été retenu que les travaux relatifs aux parties communes n'avaient pas fait l'objet d'une réception définitive (cf. jugement attaqué p. 24 consid. 7c). La critique est dénuée de pertinence.
6. La recourante s'en prend enfin au fait pour la cour cantonale d'avoir, pour certains défauts affectant les parties communes, retenu l'entier de la moins-value en faveur des intimés et non pas seulement le montant correspondant à leur part de l'immeuble.
Savoir si les parties communes sont défectueuses doit être examiné séparément pour chaque copropriétaire selon son contrat de vente ou d'entreprise, les mêmes qualités des parties communes n'ayant pas nécessairement été promises à tous les acheteurs ou maîtres de l'ouvrage; ce qui est un défaut pour un copropriétaire peut ne pas être un défaut pour un autre copropriétaire (cf. <ref-ruling> consid. 5a/aa p. 244). Il n'y a toutefois pas lieu d'en examiner plus loin les implications. Selon une constatation de la cour cantonale qui lie le Tribunal fédéral (<ref-law>), la créance en diminution du prix se monte à 56'062 fr. s'agissant des défauts qui déploient des effets essentiellement sur les unités d'étages des intimés (cf. jugement entrepris p. 26 in fine consid. 9c). Ce montant permet de compenser le solde du prix de vente dû par les intimés. Cela suffit pour rejeter le grief.
7. Il résulte des considérants qui précèdent que le recours doit être rejeté dans la mesure de sa recevabilité.
8. Compte tenu de l'issue du litige, les frais judiciaires et dépens des intimés, créanciers solidaires, doivent être mis à la charge de la recourante, qui succombe (art. 66 al. 1 ainsi qu'art. 68 al. 1 et 2 LTF).

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est rejeté dans la mesure où il est recevable.
2. Les frais judiciaires, arrêtés à 2'500 fr., sont mis à la charge de la recourante.
3. Une indemnité de 3'000 fr., à payer aux intimés, créanciers solidaires, à titre de dépens, est mise à la charge de la recourante.
4. Le présent arrêt est communiqué aux mandataires des parties et à la IIe Cour civile du Tribunal cantonal valaisan.
Lausanne, le 12 octobre 2009
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La Présidente: La Greffière:
Klett Cornaz